ubuntu部署redis集羣

記錄第一次在linux(ubuntu)下部署redis集羣

環境準備

redis版本5.0.8
官網下載源碼並解壓

// redis 5.0.8
wget http://download.redis.io/releases/redis-5.0.8.tar.gz
tar -zxvf redis-5.0.8.tar.gz
cd redis-5.0.8
make PREFIX=/home/slk/software/redis install

集羣部署

目錄創建及配置文件更改

首先創建6個目錄,用來部署6個節點,3主3從,端口號自定義,本文選用7000-7005
並在6個目錄中分別創建conf data log 3個目錄用來存放日誌等文件
將解壓的redis-5.0.8目錄下redis.conf文件分別複製到上面的6個目錄中,對應每個端口號修改內容

port 7000                               # 修改端口號對應目錄的端口號
bind 0.0.0.0                            # Ip綁定 綁定本機ip或者改爲 0.0.0.0--這個配置我沒有修改,使用默認的127.0.0.1
/home/weblogic/redis/redis-cluster/7000/data # 數據位置dir ./  改爲>dir /home/weblogic/redis/redis-cluster/7000/data
cluster-enabled yes                     # 啓用集羣模式
cluster-config-file nodes-7000.conf     # 集羣模式中節點的配置文件
cluster-node-timeout 5000               # 超時時間
appendonly yes                          # redis數據持久化開啓,開啓AOF模式
daemonize yes                           # 後臺運行
protected-mode no                       # 非保護模式,允許 Redis 遠程訪問
pidfile  /home/weblogic/redis/redis-cluster/7000/data/redis_7000.pid  # pidfile 需要隨着文件夾的不同調增
# 如需密碼則修改如下配置--這裏我並未設置密碼
requirepass "guoyuan" # 在:# requirepass foobared 下新增密碼配置
masterauth "密碼"    # masterauth <master-password> 下新增密碼配置

使用redis-server工具啓動進程

# 注意6個進程都要啓動,這裏只列舉一個
/home/slk/software/redis/bin/redis-server /home/slk/software/redis/redis-cluster/7000/7000.conf

啓動後用ps命令查看進程是否啓動成功
注意:此時只是啓動了redis的6個實例,但並未創建集羣模式,使用redis-cli命令進入任意一個節點創建key會報錯

127.0.0.1:7005> set test 123
(error) CLUSTERDOWN Hash slot not served

原因是6個節點並未分配slot

create命令創建集羣

進程啓動成功後,使用redis-cli create命令創建集羣,注意安裝過程中需要輸入yes

/home/slk/software/redis/bin/redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005  --cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 127.0.0.1:7004 to 127.0.0.1:7000
Adding replica 127.0.0.1:7005 to 127.0.0.1:7001
Adding replica 127.0.0.1:7003 to 127.0.0.1:7002
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 8e6a3bac108e035bcbd7dd621bd64c0d0ba7432e 127.0.0.1:7000
   slots:[0-5460] (5461 slots) master
M: c173c00989f0f64e390711116141f37d8039ea43 127.0.0.1:7001
   slots:[5461-10922] (5462 slots) master
M: 42b09bed1ef637f70f21d7788d3ae4220d72eb18 127.0.0.1:7002
   slots:[10923-16383] (5461 slots) master
S: c41bafa0bb3debd8cd37b70df15746bf8dbbb962 127.0.0.1:7003
   replicates c173c00989f0f64e390711116141f37d8039ea43
S: 91e9af3e8fa8d4744c85ead86a80556818919707 127.0.0.1:7004
   replicates 42b09bed1ef637f70f21d7788d3ae4220d72eb18
S: 678f12ca3af4d2b92f3bbb9f474c307487594ebc 127.0.0.1:7005
   replicates 8e6a3bac108e035bcbd7dd621bd64c0d0ba7432e
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
....
>>> Performing Cluster Check (using node 127.0.0.1:7000)
M: 8e6a3bac108e035bcbd7dd621bd64c0d0ba7432e 127.0.0.1:7000
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 42b09bed1ef637f70f21d7788d3ae4220d72eb18 127.0.0.1:7002
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: c41bafa0bb3debd8cd37b70df15746bf8dbbb962 127.0.0.1:7003
   slots: (0 slots) slave
   replicates c173c00989f0f64e390711116141f37d8039ea43
M: c173c00989f0f64e390711116141f37d8039ea43 127.0.0.1:7001
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 91e9af3e8fa8d4744c85ead86a80556818919707 127.0.0.1:7004
   slots: (0 slots) slave
   replicates 42b09bed1ef637f70f21d7788d3ae4220d72eb18
S: 678f12ca3af4d2b92f3bbb9f474c307487594ebc 127.0.0.1:7005
   slots: (0 slots) slave
   replicates 8e6a3bac108e035bcbd7dd621bd64c0d0ba7432e
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

至此,3主3從集羣的部署基本完成了。

問題積累

  1. redis-cli連接某個節點時只能查看當前節點的key信息
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章