1. 程式人生 > >Window平臺搭建Redis分散式快取叢集 ---redis 安裝和使用

Window平臺搭建Redis分散式快取叢集 ---redis 安裝和使用

百度定義:Redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value型別相對更多,包括string(字串)、list(連結串列)、set(集合)、zset(sorted set --有序集合)和hash(雜湊型別),為了保證效率,資料都是快取在記憶體中。

       區別的是redis會週期性的把更新的資料寫入磁碟或者把修改操作寫入追加的記錄檔案,並且在此基礎上實現了master-slave(主從)同步。

       以前公司一直在使用ehcache快取,但是隨著業務增多和使用者訪問量的增多系統越來越不能滿足實際需求,反映也越來越慢,快取它的處理訪問速度是讀取磁碟的上千倍,覺的利用快取可以解決系統反應慢的問題。因此打算搭建一個高效能的redis快取伺服器,讓快取從應用伺服器中脫離出來單獨搭建快取伺服器,如果系統依賴於這個快取伺服器那麼就需要考慮伺服器宕機情況的出現,需要弄一個快取叢集來避免這一狀況發生。

       看到有一句經典的話描述宕機情況的發生而不讓使用者感覺到,相當於給 “飛行的飛機換一個引擎” 還要讓使用者絲毫感覺不到飛機晃動,也就是說無論後臺怎麼變出現啥狀況,對於使用者介面前臺使用者體驗要好。

       在系統優化方案中一般首先要考慮快取,其次再考慮其他瓶頸,這也是系統優化經驗。

       下面先看一下在兩臺window平臺電腦上搭建的redis伺服器。

       Redis Linux和window整合最新版下載地址:http://pan.baidu.com/s/1dD1WmEd

       結構圖如下

       

1.下載解壓,沒什麼好說的,在解壓後的bin目錄下有以下這些檔案:

      

 2.該伺服器主要包括上面的檔案,首先啟動伺服器,啟動伺服器時需要將redis.windows.conf伺服器配置檔案載入進行,可以在命令列輸入如下命令(需要將該目錄加到環境變數裡面才起作用),我把它寫在了一個bat腳本里面,直接點選可以啟動服務:

       

 3.執行,看到如下介面表示已經啟動成功。

       

       至此,這臺電腦上redis伺服器已安裝好,IP地址為:192.168.24.82;預設埠:6379;

       重複步驟,再在另一臺電腦安一個伺服器設定主從關係Master-slave:IP地址:192.168.24.39;埠:6379

 4.為了安全首先給伺服器枷鎖,預設配置並沒有設定密碼任何一個使用者都可以訪問這個伺服器,修改redis.windows.conf配置檔案修改密碼:找到如下行:

       找到# requirepass foobared 去掉前面的註釋#,並把foobared 替換為你自己的密碼:lls 

       現在我們從本地ip為82的登入伺服器試試,從本機登入輸入命令呼叫客戶端程式並輸入密碼:

       

 5. 引數分別為IP、port、password,如果不輸入密碼將提示沒有許可權登入系統。從遠端登入原理一樣只不過輸入的IP地址不同而已,在本機往快取裡面設儲存值之後然後從另一臺電腦可以取得該值。

       

       這樣就可以從任意電腦和客戶端訪問這臺快取伺服器,這兩臺伺服器之間還需要設定主從關係完成同步備份。

       伸縮性考慮:

       在快取伺服器叢集中需要考慮伺服器伸縮性即某一天快取伺服器不能夠滿足需求時,動態新增一臺或者減少一臺伺服器對於現有的叢集影響最小,影響越小表明伸縮性越好,不僅僅指快取還有應用伺服器叢集、資料庫伺服器叢集等都需要考慮這一問題。

效能測試

      自帶工具benchmark.exe,輸入命令:benchmark -h 192.168.24.82 -p 6379 -c 1000 -n 100000。表示向伺服器傳送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,如此即可將結果輸出到檔案中。

      後一篇部落格將介紹如何搭建主從伺服器以及通過Java客戶端同伺服器互動。


相關推薦

Window平臺搭建Redis分散式快取叢集 ---redis 安裝使用

百度定義:Redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value型別相對更多,包括string(字串)、list(連結串列)、set(集合)、zset(sorted set --有序集合)和hash(雜湊型別),為了保證效率,資料都

分散式快取技術redis學習系列(四)——redis高階應用(叢集搭建叢集分割槽原理、叢集操作)

Redis叢集簡介 Redis 叢集是3.0之後才引入的,在3.0之前,使用哨兵(sentinel)機制(本文將不做介紹,大家可另行查閱)來監控各個節點之間的狀態。Redis 叢集可謂是讓很多人久等了。 Redis 叢集是一組能進行資料共享的Redis 例項(

分散式快取技術redis系列(四)——redis高階應用(叢集搭建叢集分割槽原理、叢集操作)

[[email protected] redis-cluster]# mkdir /usr/local/redis-cluster/7037 && cp /usr/local/redis-cluster/7031/redis.conf /usr/local/redis-cluster

分散式快取技術redis學習系列(八)——JedisCluster原始碼解讀:叢集初始化、slot(槽)的分配、值的存取

redis叢集環境,客戶端使用JedisCluster獲取連線並操作redis服務,上一篇 分散式快取技術redis學習系列(七)——spring整合jediscluster 簡單介紹了spring使用JedisCluster,這篇從JedisCluster原始

我發起了一個 .Net Core 平臺上的 分散式快取 開源專案 ShareMemory 用於 取代 Redis

Redis 的 安裝 是 複雜 的, 使用 是 複雜 的,  Redis 的 功能 是 重型 的,  Redis 本身的 技術實現 是 複雜 的 。   Redis 是用 C 寫的, C 語言 編寫的程式碼需要直接呼叫 作業系統 底層 API, 如 系統套接字(Socke

redis分散式快取

簡介  1. redis 是什麼?  REmote DIctionary Server(遠端字典伺服器)  是完全開源免費的,用 C 語言編寫的,遵守 BSD 協議,是一個高效能的 (key/value)分散式記憶體資料庫,基於記憶體執行並支援

JAVA架構師系列課程分散式快取技術Redis權威指南

課程目標 本課程從0基礎開始,對redis的方方面面進行細粒度的講解:包括基礎操作、高階命令、各種叢集模式、動態增減節點,結合lua使用,實現搶紅包等應用場景。 適用人群 java程式設計師、技術主管、架構師、技術總監 課程簡介 基礎部分: 1.x NOSQL(Redis)簡介、Redis安裝部署與

分散式快取技術redis學習系列(六)——sentinel哨兵機制

一、簡介: 1、Redis 的 Sentinel 系統用於管理多個 Redis 伺服器(instance),該系統執行以下三個任務: 1)監控(Monitoring):Sentinel 會不斷地檢查你的主伺服器和從伺服器是否運作正常。 2)提醒(Notifica

Redis】SpringBoot整合Redis分散式鎖以及Redis快取

整合Redis 首先在pom.xml中加入需要的redis依賴和快取依賴 <!-- 引入redis依賴 --> <dependency>     <groupId>org.springframework.boot</grou

分散式快取技術redis學習系列(七)——spring整合jediscluster

1、maven依賴 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version

基於Codis的Redis分散式快取實現

Codis 是一個分散式 Redis 解決方案, 對於上層的應用來說, 連線到 Codis Proxy 和連線原生的 Redis Server 沒有顯著區別 , 上層應用可以像使用單機的 Redis 一樣使用, Codis 底層會處理請求的轉發, 不停機的資料遷

分散式快取技術redis學習系列(九)——Redis主從實現讀寫分離

前言 大家在工作中可能會遇到這樣的需求,即Redis讀寫分離,目的是為了壓力分散化。下面我將為大家介紹藉助AWS的ELB實現讀寫分離,以寫主讀從為例。 實現 引用庫檔案 <!-- redis客戶端 --> <dependency&g

基於redis分散式快取實現(新浪微博案例)

第一:Redis 是什麼? Redis是基於記憶體、可持久化的日誌型、Key-Value資料庫 高效能儲存系統,並提供多種語言的API. 第二:出現背景 資料結構(Data Structure)需求越來越多, 但memcache中沒有, 影響開發效率 效能需求, 隨

Java Spring Boot 2.0實戰Redis分散式快取與底層API架構

《阿里巴巴Java Spring Boot 2.0開發實戰課程》10課 本期分享專家:徐雷—阿里巴巴雲棲Java講師,MongoDB講師 本期分享主題:Java Spring Boot 2.0實戰Redis分散式快取與底層API架構(面試題) 內容概要:Redis分散式高併發快取,高併發架構的必備技術!

如何實現redis分散式快取

第一:Redis 是什麼? Redis是基於記憶體、可持久化的日誌型、Key-Value資料庫 高效能儲存系統,並提供多種語言的API. 第二:出現背景 資料結構(Data Structure)需求越來越多, 但memcache中沒有, 影響開發效率效能需求, 隨著

redis分散式快取實現

轉自: 第一:Redis 是什麼? Redis是基於記憶體、可持久化的日誌型、Key-Value資料庫 高效能儲存系統,並提供多種語言的API. 第二:出現背景 資料結構(Data Structure)需求越來越多, 但memcache中沒有, 影響開發效率效能需

分散式快取】——-基於redis分散式快取的實現

一:Redis 是什麼? Redis是基於記憶體、可持久化的日誌型、Key-Value資料庫 高效能儲存系統,並提供多種語言的API. 二:出現背景 資料結構(Data Structure)需求

大資料之(1)Centos7上搭建分散式Hadoop叢集

本文介紹搭建一個Namenode兩個DataNode的Hadoop全分散式叢集的全部步驟及方法。具體環境如下: 一、環境準備 3個Centos7虛擬機器或者3個在一個區域網內的實際Centos7機器,機器上已安裝JDK1.8,至於不會安裝Centos7或者JDK1.8的同

110 redis的哨兵叢集 docker安裝

主要內容:  1 哨兵叢集:https://blog.csdn.net/yaooch/article/details/80167571   a 哨兵的介紹:Sentinel(哨兵)是Redis的高可用性解決方案:由一個或多個Sentinel例項組成的Sentinel系統可以監視任意多個主伺服器,

spring+redis 實現快取 解決序列化反序列化的問題

1.config.properties # Redis settings redis.host=127.0.0.1 redis.port=6379   #redis.pass=password redis.dbIndex=0   redis.expiration=3000 &