前言
如果是redis單機版安裝,可以參考上一篇:Linux安裝redis。
本篇的安裝環境和上篇一樣,但是本篇是搭建redis集群。要保證集群的高可用,需要每個節點都有從節點,所以Redis集群至少需要6台服務器。因為只有一台服務器,所有這里搭建的偽分布式集群,即一台服務器虛擬運行6個redis實例,修改端口號為8001~8006。
搭建
1、在/usr/local目錄下,創建一個目錄 rediscluster
mkdir rediscluster
2、進入reidscluster目錄,創建6個文件夾(批量)
mkdir ./node800{1,2,3,4,5,6}
創建的文件夾如下所示:
3、將redis配置文件拷貝到 ./rediscluster/node8001/ 下
cp redis/redis.conf ./rediscluster/node8001/
4、修改配置文件內容
port 8001 --設置端口 #bind 127.0.0.1 --去掉綁定ip信息 protected-mode no --關閉保護模式 dir /usr/local/rediscluster/node8001 --指定數據文件存放位置,必須要指定不同的目錄,不然會丟失數據,默認 dir ./。 cluster-enabled yes --開啟集群模式 cluster-config-file nodes-8001.conf --集群節點配置文件,這里的800x最好和port對應上,redis集群自動創建、自動更新 cluster-node-timeout 5000 --集群超時時間,節點超過這個時間沒反應就斷定是宕機 appendonly yes --開啟AOF持久化 如果要設置密碼,需要增加如下配置: requirepass 123456 --設置redis訪問密碼 masterauth 123456 --設置集群節點間訪問密碼,跟上面一致
5、保存后,將此配置文件復制到其它節點(node8002~node8006)
6、在node8002~node8006的配置文件中,命令模式下執行替換命令(將8001改為800x):
7、切到redis目錄,啟動node8001節點服務
./src/redis-server /usr/local/rediscluster/node8001/redis.conf
查看redis進程,發現進程中有表示為 [cluster]的redis進程。如下所示:
8、參照上一步,分別啟動其它5個節點。啟動后查看進程如下:
9、創建集群(其中:-a 123456是配置文件中的密碼,cluster-replicas 1,表示1個從節點)
./src/redis-cli -a 123456 --cluster create 192.168.20.15:8001 192.168.20.15:8002 192.168.20.15:8003 192.168.20.15:8004
192.168.20.15:8005 192.168.20.15:8006 --cluster-replicas 1
執行后,slots和主從節點信息如下(8001(主)和8004(從)、8002(主)和8005(從)、8003(主)和8006(從)):
10、詢問是否確認上面的配置,輸入 yes,會打印如下信息:
自此集群搭建就完成了
普通模式
1、普通模式進入redis客戶端(-a是密碼,-p是端口,如果是遠程連接,得加上-h)
./src/redis-cli -a 123456 -p 8001
2、執行set命令,發現報錯(意思其實就是 a 對應的slot為15495,只能在8003上執行)
3、切到8003上再執行set命令,執行成功
集群模式
1、普通模式執行命令可能slot不正確導致命令不能執行,所以可以切到集群模式執行(加一個 -c 選項)。
./src/redis-cli -c -a 123456 -p 8001
2、在8001上執行set命令,發現可以執行成功
其它命令
1、查看key為a的slot值
cluster keyslot a
2、查看slot信息
cluster slots
3、查看集群信息:
cluster info
4、集群幫助命令
redis-cli --cluster help