Redis5.0 3台主機三主三從部署Cluster集群


1、下載安裝

[root@ip101 redis-5.0.4]# pwd
/opt/app/redis-5.0.4
[root@ip101 redis-5.0.4]# ls
00-RELEASENOTES  BUGS  CONTRIBUTING  COPYING  deps  INSTALL  Makefile  MANIFESTO  README.md  redis.conf  runtest  runtest-cluster  runtest-sentinel  sentinel.conf  src  tests  utils
[root@ip101 redis-5.0.4]# pwd
/opt/app/redis-5.0.4
[root@ip101 redis-5.0.4]# make
........................................................
    LINK redis-cli
    CC redis-benchmark.o
    LINK redis-benchmark
    INSTALL redis-check-rdb
    INSTALL redis-check-aof

Hint: It's a good idea to run 'make test' ;)

make[1]: Leaving directory `/opt/app/redis-5.0.4/src'
[root@ip101 redis-5.0.4]# pwd
/opt/app/redis-5.0.4
[root@ip101 redis-5.0.4]# ls
00-RELEASENOTES  BUGS  CONTRIBUTING  COPYING  deps  INSTALL  Makefile  MANIFESTO  README.md  redis.conf  runtest  runtest-cluster  runtest-sentinel  sentinel.conf  src  tests  utils
[root@ip101 redis-5.0.4]# make install 

[root@ip101 redis-5.0.4]# make uninstall#默認安裝到了/usr/local/bin/目錄下,更改為redis放置目錄
cd src && make uninstall
make[1]: Entering directory `/opt/app/redis-5.0.4/src'
rm -f /usr/local/bin/{redis-server,redis-benchmark,redis-cli,redis-check-rdb,redis-check-aof,redis-sentinel}
make[1]: Leaving directory `/opt/app/redis-5.0.4/src'
[root@ip101 redis-5.0.4]# 
[root@ip101 redis-5.0.4]# make PREFIX=/opt/app/redis-5.0.4 install
cd src && make install
make[1]: Entering directory `/opt/app/redis-5.0.4/src'

Hint: It's a good idea to run 'make test' ;)

    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
make[1]: Leaving directory `/opt/app/redis-5.0.4/src'
[root@ip101 redis-5.0.4]# pwd
/opt/app/redis-5.0.4
[root@ip101 redis-5.0.4]# ls #安裝了bin工具文件夾
00-RELEASENOTES  bin  BUGS  CONTRIBUTING  COPYING  deps  INSTALL  Makefile  MANIFESTO  README.md  redis.conf  runtest  runtest-cluster  runtest-sentinel  sentinel.conf  src  tests  utils

2、創建相關文件夾

[root@ip101 redis-5.0.4]# mkdir -p /opt/app/redis-5.0.4/cluster/6379
[root@ip101 redis-5.0.4]# mkdir -p /opt/app/redis-5.0.4/cluster/6380

[root@ip101 redis-5.0.4]# pwd
/opt/app/redis-5.0.4
[root@ip101 redis-5.0.4]# ls
00-RELEASENOTES  BUGS     CONTRIBUTING  deps     Makefile   README.md   runtest          runtest-sentinel  src    utils
bin              cluster  COPYING       INSTALL  MANIFESTO  redis.conf  runtest-cluster  sentinel.conf     tests
[root@ip101 redis-5.0.4]# pwd
/opt/app/redis-5.0.4
[root@ip101 redis-5.0.4]# cp redis.conf /opt/app/redis-5.0.4/cluster/6379
[root@ip101 redis-5.0.4]# cp redis.conf /opt/app/redis-5.0.4/cluster/6380
[root@ip101 redis-5.0.4]#

3、vi /opt/app/redis-5.0.4/cluster/6379/redis.conf

# 綁定服務器IP地址
bind 192.168.8.101

# 綁定端口號,必須修改,以此來區分Redis實例
port 6379

# 后台運行
daemonize yes

# 修改pid進程文件名,以端口號命名
pidfile /var/run/redis-6379.pid

# 修改日志文件名稱,以端口號為目錄來區分
logfile /opt/app/redis-5.0.4/cluster/6379/redis.log

# 修改數據文件存放地址,以端口號為目錄名來區分
dir /opt/app/redis-5.0.4/cluster/6379/

# 啟用集群
cluster-enabled yes

# 配置每個節點的配置文件,同樣以端口號為名稱
cluster-config-file nodes-6379.conf

# 配置集群節點的超時時間,可改可不改
cluster-node-timeout 15000

# 啟動AOF增量持久化策略
appendonly yes

# 發生改變就記錄日志
appendfsync always

vi /opt/app/redis-5.0.4/cluster/6380/redis.conf

# 綁定服務器IP地址
bind 192.168.8.101

# 綁定端口號,必須修改,以此來區分Redis實例
port 6380

# 后台運行
daemonize yes

# 修改pid進程文件名,以端口號命名
pidfile /var/run/redis-6380.pid

# 修改日志文件名稱,以端口號為目錄來區分
logfile /opt/app/redis-5.0.4/cluster/6380/redis.log

# 修改數據文件存放地址,以端口號為目錄名來區分
dir /opt/app/redis-5.0.4/cluster/6380/

# 啟用集群
cluster-enabled yes

# 配置每個節點的配置文件,同樣以端口號為名稱
cluster-config-file nodes-6380.conf

# 配置集群節點的超時時間,可改可不改
cluster-node-timeout 15000

# 啟動AOF增量持久化策略
appendonly yes

# 發生改變就記錄日志
appendfsync always

4、ip102,ip103仿效ip101進行安裝和配置

# 綁定服務器IP地址
bind 192.168.8.102
---------------
# 綁定服務器IP地址
bind 192.168.8.102

5、ip101,ip102,ip103配置環境變量

export REDIS_HOME=/opt/app/redis-5.0.4
export PATH=$REDIS_HOME/bin:$PATH
source /etc/profile

6、ip101、ip102、ip103啟動redis

[root@ip101 redis-5.0.4]# redis-server /opt/app/redis-5.0.4/cluster/6379/redis.conf 
[root@ip101 redis-5.0.4]# redis-server /opt/app/redis-5.0.4/cluster/6380/redis.conf   
[root@ip101 redis-5.0.4]# ps aux|grep redis
root      12323  0.1  0.2 144480  2548 ?        Ssl  05:01   0:00 redis-server 192.168.8.101:6379 [cluster]
root      12334  0.4  0.2 144480  2548 ?        Ssl  05:01   0:00 redis-server 192.168.8.101:6380 [cluster]
root      12343  0.0  0.0 112660   976 pts/0    S+   05:01   0:00 grep --color=auto redis
[root@ip101 redis-5.0.4]# 

7、創建集群

redis-cli --cluster create 192.168.8.101:6379 192.168.8.101:6380 192.168.8.102:6379 192.168.8.102:6380 192.168.8.103:6379 192.168.8.103:6380 --cluster-replicas 1
#################################################################################
[root@ip101 redis-5.0.4]# redis-cli --cluster create 192.168.8.101:6379 192.168.8.101:6380 192.168.8.102:6379 192.168.8.102:6380 192.168.8.103:6379 192.168.8.103:6380 --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 192.168.8.102:6380 to 192.168.8.101:6379
Adding replica 192.168.8.103:6380 to 192.168.8.102:6379
Adding replica 192.168.8.101:6380 to 192.168.8.103:6379
M: 3784c7f8683faf1adce14c43c4274300fff33c79 192.168.8.101:6379
   slots:[0-5460] (5461 slots) master
S: 8181ed88dd5fa1b1165a0b3a4c632de508d5766a 192.168.8.101:6380
   replicates a88b9d61503decf0a4b599c169c693add15b2534
M: dfb1bf054d740fa7d3c5487278457034f17ca617 192.168.8.102:6379
   slots:[5461-10922] (5462 slots) master
S: bb5ae386877fda949e10f88f051a9006299fba21 192.168.8.102:6380
   replicates 3784c7f8683faf1adce14c43c4274300fff33c79
M: a88b9d61503decf0a4b599c169c693add15b2534 192.168.8.103:6379
   slots:[10923-16383] (5461 slots) master
S: c36284d8e41f05352dbd4b9c8e88be3d9ef24aba 192.168.8.103:6380
   replicates dfb1bf054d740fa7d3c5487278457034f17ca617
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 192.168.8.101:6379)
M: 3784c7f8683faf1adce14c43c4274300fff33c79 192.168.8.101:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
S: 8181ed88dd5fa1b1165a0b3a4c632de508d5766a 192.168.8.101:6380
   slots: (0 slots) slave
   replicates a88b9d61503decf0a4b599c169c693add15b2534
S: bb5ae386877fda949e10f88f051a9006299fba21 192.168.8.102:6380
   slots: (0 slots) slave
   replicates 3784c7f8683faf1adce14c43c4274300fff33c79
S: c36284d8e41f05352dbd4b9c8e88be3d9ef24aba 192.168.8.103:6380
   slots: (0 slots) slave
   replicates dfb1bf054d740fa7d3c5487278457034f17ca617
M: dfb1bf054d740fa7d3c5487278457034f17ca617 192.168.8.102:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
M: a88b9d61503decf0a4b599c169c693add15b2534 192.168.8.103:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

8、查看集群狀態

[root@ip101 redis-5.0.4]# redis-cli --cluster check 192.168.8.101:6379
192.168.8.101:6379 (3784c7f8...) -> 0 keys | 5461 slots | 1 slaves.
192.168.8.102:6379 (dfb1bf05...) -> 0 keys | 5462 slots | 1 slaves.
192.168.8.103:6379 (a88b9d61...) -> 0 keys | 5461 slots | 1 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.8.101:6379)
M: 3784c7f8683faf1adce14c43c4274300fff33c79 192.168.8.101:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
S: 8181ed88dd5fa1b1165a0b3a4c632de508d5766a 192.168.8.101:6380
   slots: (0 slots) slave
   replicates a88b9d61503decf0a4b599c169c693add15b2534
S: bb5ae386877fda949e10f88f051a9006299fba21 192.168.8.102:6380
   slots: (0 slots) slave
   replicates 3784c7f8683faf1adce14c43c4274300fff33c79
S: c36284d8e41f05352dbd4b9c8e88be3d9ef24aba 192.168.8.103:6380
   slots: (0 slots) slave
   replicates dfb1bf054d740fa7d3c5487278457034f17ca617
M: dfb1bf054d740fa7d3c5487278457034f17ca617 192.168.8.102:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
M: a88b9d61503decf0a4b599c169c693add15b2534 192.168.8.103:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@ip101 redis-5.0.4]# 

9、使用集群

隨意找到一個端口進行連接

[root@ip101 redis-5.0.4]# redis-cli -c -h 192.168.8.102 -p 6380
192.168.8.102:6380> set key1 value1
-> Redirected to slot [9189] located at 192.168.8.102:6379
OK
192.168.8.102:6379> get key1
"value1"
192.168.8.102:6379> 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM