redis搭建主從
條件:yum安裝(3.2.1)與編譯安裝(5.0.0)都可以
環境:我這里在同一台主機上搭建,當然也可以兩台。
1) 復制redis.conf的主配置文件並命令為slave.conf
2)配置slave.conf
bind 192.168.253.153(主節點ip一致)
slaveof 192.168.253.153 6379 (主節點的ip與端口)
port 6389 (自定義)
3)重啟服務
redis-server 文件名(如果不在目錄下,就需要帶上目錄)
4)測試
進入主從節點的redis數據庫中,在主節點上添加等操作,如果從節點能夠讀出來,說明配置成功。
redis-cli -p 6379 -h 192.168.253.10
redis-cli -p 6389 -h 192.168.253.10 #配置的端口和ip
redis集群
環境:兩台主機(一台3個主節點,一台三個從節點) 或者一台主機(3台主節點,3台從節點)
條件:編譯安裝,yum安裝的如果時3.2版本或者更早之前很可能會行不通,報錯:
Unrecognized option or bad number of args for: '--cluster' #此錯誤原因為參數錯誤或者缺少redis cluster
我這里選擇一台主機配置集群:
1)創建一個conf目錄
mkdir conf
2)創建6個.conf結尾的文件
touch {7000,7001,7002,7003,7004,7005}.conf
3)添加配置內容
port 7000 #綁定端口 bind 192.168.253.135 #綁定對外連接提供的ip daemonize yes #開啟守護進程 pidfile 7000.pid #進程文件名 cluster-enabled yes #是否是集群 cluster-config-file 7000_node.conf #集群配置文件 cluster-node-timeout 15000 #集群連接超時時間 appendonly yes #數據持久化類型
不同配置文件之間只需更改:port ;pidfile ;cluster-config-file(如果是不同主機上配置,bind也需更改)
4)寫一個執行腳本:
#!/bin/bash for i in `seq 0 5` do redis-server 700$i.conf done
bash a.sh來開啟服務
ps -ef | grep redis 來查看是否開啟服務
5)早版本需要安裝ivm和ruby來做集群操作,現在我們只需要執行以下命令:
redis-cli --cluster create 192.168.253.153:7000 192.168.253.153:7001 192.168.253.153:7002 192.168.253.153:7003 192.168.253.153:7004 192.168.253.153:7005 --cluster-replicas 1
出現以下內容后yes確認接受。
6)測試
進入數據庫:redis-cli -p7000 -c -h 192.168.253.153
每一次更改等操作會跳轉節點,主節點如果宕機,會由其他兩個節點從從節點中選一個來頂替。
拓展:2)、3)、4)步可以通過以下腳本來實現:
#!/bin/bash for i in `seq 7000 7005` do touch "$i".conf echo -e " port "$i"\nbind 192.168.253.153\ndaemonize yes \npidfile "$i".pid\ncluster-enabled yes\ncluster-config-file "$i"_node.conf\ncluster-node-timeout 15000\nappendonly yes" > "$i".conf redis-server "$i".conf done