CentOS搭建Redis-cluster。corrupte cluster config file;redis requires Ruby version;can‘t connect to node
1. 配置redis-cluster
1.1 先在CentOS安裝Redis,然后再配置redis-cluster。首先創建兩個目錄用于存放redis-cluster的配置文件、日志信息以及持久化文件,如下圖。
1.2 復制一份redis安裝目錄下的redis.conf配置文件至redis-cluster配置文件目錄/etc/redis-cluster,命名為7001.conf并進行下列參數設置,注意cluster-config-file的文件名設置,如果存在覆蓋情況,會報錯Unrecoverable error:corrupted cluster config file。
bind 192.168.56.101 # bind本機地址,而不是127.0.0.1 port 7001 # 方便集群管理 daemonize yes # 后臺運行 pidfile "/var/run/redis_cluster_7001.pid" # 運行產生的進程文件 logfile "/var/redis-cluster/7001.log" # 日志文件 dir "/var/redis-cluster/7001" # 持久化目錄 appendonly yes # 設置僅僅從aof備份文件恢復數據cluster-enabled yes # 開啟redis-cluster cluster-config-file /etc/redis-cluster/n_7001.conf # redis-cluster配置文件路徑不要和7001.conf文件重名,不然redis啟動后該文件會覆蓋原文件 cluster-node-timeout 10000 # 節點宕機時長1.3 因為是3主3從,最終使用3臺虛擬機來實現,所以一臺虛擬機要配置兩個redis-cluster,所以在當前虛擬機再類似配置一個7002,然后在另外兩臺虛擬機上配置7003、7004和7005、7006。本機的7002只需將1.2中參數的7001換成7002即可;其它機器7003等除了將7001進行替換,還需要修改bind的IP地址。
1.4 配置redis-cluster啟動腳本,將/etc/init.d的redis_6379復制并分別命名為redis_cluster_7001和redis_cluster_7002......,更改該文件的REDISPORT參數為我們設置的端口7001、7002.....。同時更改pidfile和dir兩個參數(改為我們上面已設置的pidfile路徑以及cluster-config-file的路徑),如下圖。
?
2. 創建redis-cluster集群
yum install ruby # 因為cluster的管理需要rb文件,所以需要安裝ruby yum install rubygems gem install redis # 安裝失敗,可看接下來的解決方案# 復制到/usr/local/bin目錄的文件可直接執行 cp /usr/local/redis-3.2.8/src/redis-trib.rb /usr/local/bin # 使用redis-trib.rb創建Redis集群 redis-trib.rb create --replicas 1 192.168.56.101:7001 192.168.56.101:7002 192.168.56.102:7003 192.168.56.102:7004 192.168.56.103:7005 192.168.56.103:70062.1 使用gem安裝Redis失敗,提示ERROR: ?Error installing redis: redis requires Ruby version >= 2.3.0. 其實就是Ruby版本較低,升級Ruby貌似有點復雜,那就直接去gem官網下載redis.gem文件唄,我的redis是3.2.8版本,gem網上沒有對應版本,于是下載了3.2.2版本的。下載后使用 gem install redis.3.2.2.gem 即可,如下圖。
2.2 使用redis-trib.rb創建redis-cluster時失敗,提示,can't connect to node 192.168.56.102。
但是ping可以ping通,而且Redis沒有設置密碼。這時想起來之前手動搭建Redis集群時,也碰到連不上其它主機的情況,除了網絡問題,其實就是ip地址沒有使用真正的ip地址,而是使用127.0.0.1這種本地地址。使用 find / -name client.rb 指令找到配置文件client.rb,如下圖。
然后可以看到里面的配置如下圖,將host改為本機地址,port改為其中一個,如7001。
然后Redis全部重啟,再次執行創建集群指令即可。
最后創建redis-cluster成功如下圖。
還可通過以下指令查看,輸出結果和上面一致。
總結
以上是生活随笔為你收集整理的CentOS搭建Redis-cluster。corrupte cluster config file;redis requires Ruby version;can‘t connect to node的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python多进程multiproces
- 下一篇: CentOS6.5安装MySQL5.1.