標籤:

【架構】商城APP架構之1.0版本(1) - 環境配置

【架構】商城APP架構之1.0版本(1) - 環境配置

來自專欄代碼改變世界

引言

因為小編想從PHP轉架構,所以索性就寫一份小編對於一個商城從初期開始搭建,和後續發展中可能遇到的問題,以及一些解決方案。現在,我們先來搭建1.0版本。

分析

由於是1.0版本,此時的階段是嘗試階段,所以我們不宜投入太多的經費和時間去開發。所以我們1.0版本的主要要求是:成本低、開發時間短。

工具

  1. PHP
  2. MySQL
  3. Linux
  4. redis

分析

後端語言:PHP

後端語言有很多種,如:Java,go,Python,PHP等,都可以寫後端和介面。接下來小編根據自己的情況與考慮。

Java:開發難度大,過於複雜,開發周期長,成本大,針對前期開發的靈活性及速度來講,不太適合1.0版本的開發的要求。

Python:雖然跟PHP語言一樣,是一種極易上手的語言,也有web端框架,但小編更覺得Python的主場是數據分析、爬蟲、人工智慧等領域。

Go:這個語言,小編沒有使用過,小編覺得go語言雖然很多人說性能上,比PHP要好,但小編還是覺得,PHP比較適合做web端。

PHP:極易上手,開發速度快,免費開源

資料庫:MySQL

我們來看看一組數據圖:

2018年排名前10的資料庫

我們可以很清楚的看到2018年排名前10的資料庫,第一名的是oracle,第二名的是MySQL,第五名的是mongoDB,第三第四名沒有接觸過,現在不提。

oracle:這款資料庫在性能,安全性等方面,都比MySQL要好,但好的同時,也代表著這款資料庫的複雜程度要比MySQL高,而且最主要的是,oracle是大型項目才會使用到的,而且還是需要付費的,所以對於前期數據量不大的情況下,oracle不是一個很好的選擇。

MySQL:這款資料庫雖然很多方面比不上oracle,但憑藉著它能排名第二,就說明它是具有一定的好處的,比如:開源免費、易上手、擴展起來費用低、PHP有成熟的MySQL擴展。

MongoDB:這款資料庫是半結構型資料庫,雖然也是免費開源,易上手,但其不怎麼支持事務特性,對於一個商城網站來說,事務的特性還是比較重要的,至少前期,事務還是能很好的解決我們數據不一致性的問題。

操作系統:Linux

這裡的話,我們就只是分析Linux跟windows操作系統。

Linux:Linux支持多核,擁有很好的並發性,安全性高,性能好等等,作為伺服器來說,Linux操作系統較為合適。

windows:不支持多核,並發性能力低,安全性比Linux低,不適合作為伺服器的操作系統。

緩存:redis

小編就只是講講Redis和Memcache之間的區別,至於選擇哪個,看各自的需求。

1、性能上:

性能上都很出色,具體到細節,由於Redis只使用單核,而Memcached可以使用多核,所以平均每一個核上Redis在存儲小數據時比

Memcached性能更高。而在100k以上的數據中,Memcached性能要高於Redis,雖然Redis最近也在存儲大數據的性能上進行優化,但是比起 Memcached,還是稍有遜色。

2、內存空間和數據量大小:

MemCached可以修改最大內存,採用LRU演算法。Redis增加了VM的特性,突破了物理內存的限制。

3、操作便利上:

MemCached數據結構單一,僅用來緩存數據,而Redis支持更加豐富的數據類型,也可以在伺服器端直接對數據進行豐富的操作,這樣可以減少網路IO次數和數據體積。

4、可靠性上:

MemCached不支持數據持久化,斷電或重啟後數據消失,但其穩定性是有保證的。Redis支持數據持久化和數據恢復,允許單點故障,但是同時也會付出性能的代價。

5.應用場景:

Memcached:動態系統中減輕資料庫負載,提升性能;做緩存,適合多讀少寫,大數據量的情況(如人人網大量查詢用戶信息、好友信息、文章信息等)。

Redis:適用於對讀寫效率要求都很高,數據處理業務複雜和對安全性要求較高的系統(如新浪微博的計數和微博發布部分系統,對數據安全性、讀寫要求都很高)。

6、單個key-value儲存大小:

Memcached單個key-value大小有限,一個value最大隻支持1MB,而Redis最大支持512MB。

總結

以上就是我對於我這個項目選用的技術。由於小編還是新手,深入的性能比較,不太了解,請大家根據自己的實際情況來選擇使用哪些技術。


推薦閱讀:

光谷發布「製造十條」 每年10億資金支持製造業
美國究竟發達到什麼程度?
[雙語]獵鷹重型火箭首射成功,SpaceX 下一步將做什麼
神州數碼、易華錄、銀江股份、航天科工四家各自有自己的「智慧城市」解決方案,從目前來看,最成熟的是哪家?
甲小姐自述:站在兩個世界之間|甲子光年

TAG:科技 |