Window平臺搭建Redis分佈式緩存集羣 (一)server搭建及性能測試

       百度定義:Redis是一個key-value存儲系統。和Memcached相似,它支持存儲的value類型相對不少其它。包含string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。爲了保證效率,數據都是緩存在內存中。java

       差異的是redis會週期性的把更新的數據寫入磁盤或者把改動操做寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。redis

       曾經公司一直在使用ehcache緩存。但是隨着業務增多和用戶訪問量的增多系統愈來愈不能知足實際需求,反映也愈來愈慢,緩存它的處理訪問速度是讀取磁盤的上千倍,覺的利用緩存可以解決系統反應慢的問題。所以打算搭建一個高性能的redis緩存server。讓緩存從應用server中脫離出來單獨搭建緩存server,假設系統依賴於這個緩存server那麼就需要考慮server宕機狀況的出現,需要弄一個緩存集羣來避免這一情況發生。數據庫

       

       看到有一句經典的話描寫敘述宕機狀況的發生而不讓用戶感受到。至關於給 「飛行的飛機換一個引擎」 還要讓用戶絲毫感受不到飛機晃動。也就是說無論後臺怎麼變出現啥情況,對於用戶界面前臺用戶體驗要好。windows

       在系統優化方案中通常首先要考慮緩存。其次再考慮其它瓶頸,這也是系統優化經驗。緩存

       如下先看一下在兩臺window平臺電腦上搭建的redisserver。安全

       Redis Linux和window集成最新版下載地址:http://pan.baidu.com/s/1dD1WmEd併發

       結構圖例如如下工具

       


1.下載解壓。沒什麼好說的,在解壓後的bin文件夾下有下面這些文件:性能

      

 2.該server主要包含上面的文件。首先啓動server,啓動server時需要將redis.windows.confserver配置文件載入進行。可以在命令行輸入例如如下命令(需要將該文件夾加到環境變量裏面才起做用)。我把它寫在了一個bat腳本里面。直接點擊可以啓動服務:優化

       

       

 3.運行,看到例如如下界面表示已經啓動成功。

       

       至此,這臺電腦上redisserver已安裝好。IP地址爲:192.168.24.82。默認port:6379;

       反覆步驟,再在還有一臺電腦安一個server設置主從關係Master-slave:IP地址:192.168.24.39;port:6379

 4.爲了安全首先給server枷鎖,默認配置並無設置password不論什麼一個用戶都可以訪問這個server。改動redis.windows.conf配置文件改動password:找到例如如下行:

       找到# requirepass foobared 去掉前面的凝視#。並把foobared 替換爲你本身的password:lls 

       現在咱們從本地ip爲82的登陸server試試,從本機登陸輸入命令調用client程序並輸入password:

       

 5. 參數分別爲IP、port、password,假設不輸入密碼將提示沒有權限登陸系統。

從遠程登陸原理同樣僅僅只是輸入的IP地址不一樣而已,在本機往緩存裏面設存儲值以後而後從還有一臺電腦可以取得該值。

       

       這樣就可以從隨意電腦和client訪問這臺緩存server。這兩臺server之間還需要設置主從關係完畢同步備份。

       伸縮性考慮:

       在緩存server集羣中需要考慮server伸縮性即某一天緩存server不能夠知足需求時,動態加入一臺或者下降一臺server對於現有的集羣影響最小。影響越小代表伸縮性越好,不僅指緩存還有應用server集羣、數據庫server集羣等都需要考慮這一問題。

       

性能測試

      自帶工具benchmark.exe,輸入命令:benchmark -h 192.168.24.82 -p 6379 -c 1000 -n 100000。表示向server發送10萬個請求,每次請求併發數爲1000,結果例如如下:

      ====== PING_INLINE ======
            100000 requests completed in 154.46 seconds
            1000 parallel clients
            3 bytes payload
             keep alive: 1

            647.43 requests per second

     ====== PING_INLINE ======


      表示平均每秒處理647.43個併發請求,至關於每秒有60萬用戶請求。此電腦配置4G內存單核CUP,性能仍是可以的。

PS:

      在測試時大量的輸出信息顯示在cmd控制檯,會覆蓋曾經的信息。事實上咱們可以將結果輸出到txt文件在命令的後面加上一個符號就能夠。拿咱們熟悉的命令舉例:ipconfig all > D:text.txt,如此就能夠將結果輸出到文件裏。

      後一篇博客將介紹怎樣搭建主從server以及經過javaclient同server交互。

相關文章
相關標籤/搜索