Redis 5.0.0安裝部署(集羣版)

一. 安裝單機版redis

Redis單機安裝

二、創建集羣節點

1. 創建文件夾

我們計劃集羣中 Redis 節點的端口號爲9001-9006 ,端口號即集羣下各redis實例文件夾。數據存放在端口號/data文件夾中。

mkdir /usr/local/redis-cluster
cd redis-cluster/
mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data

2.複製執行腳本

把安裝好的單機版redis bin目錄下的執行腳本複製到redis集羣文件夾下

mkdir /usr/local/redis-cluster/bin/
cd /usr/local/redis/bin/* /usr/local/redis-cluster/bin/

3. 複製配置文件

把解壓目錄下的redis配置文件redis.conf複製一份到各端口實例文件夾中

cp /usr/local/redis-5.0.0/redis.conf /usr/local/redis-cluster/9001/ \
cp /usr/local/redis-5.0.0/redis.conf /usr/local/redis-cluster/9002/ \
cp /usr/local/redis-5.0.0/redis.conf /usr/local/redis-cluster/9003/ \
cp /usr/local/redis-5.0.0/redis.conf /usr/local/redis-cluster/9004/ \
cp /usr/local/redis-5.0.0/redis.conf /usr/local/redis-cluster/9005/ \
cp /usr/local/redis-5.0.0/redis.conf /usr/local/redis-cluster/9006/

 

4. 修改各端口實例中的配置文件選項

port 9001(每個節點的端口號)
daemonize yes(後臺運行)
# bind 192.168.119.131(綁定當前機器 IP)
dir /usr/local/redis-cluster/9001/data/(數據文件存放位置)
pidfile /var/run/redis_9001.pid(pid 9001和port要對應)
cluster-enabled yes(啓動集羣模式)
cluster-config-file nodes-9001.conf(9001和port要對應)
cluster-node-timeout 15000
appendonly yes

注:其實可以先修改一個端口實例下的配置文件,完了再複製到其他端口實例文件夾中,通過全局替換成相應端口即可。

比如在vi命令模式下進行如下替換即可:

:%s/9001/9002g

5. 啓動 9001-9006 六個實例節點

cd /usr/local/redis/bin/
./redis-server /usr/local/redis-cluster/9001/redis.conf \
./redis-server /usr/local/redis-cluster/9002/redis.conf \
./redis-server /usr/local/redis-cluster/9003/redis.conf \
./redis-server /usr/local/redis-cluster/9004/redis.conf \
./redis-server /usr/local/redis-cluster/9005/redis.conf \
./redis-server /usr/local/redis-cluster/9006/redis.conf

6. 查看啓動服務

[root@rocketmq-nameserver1 bin]# ps -ef |grep redis
root      10934  10768  0 06:49 pts/0    00:00:00 grep --color=auto redis
root      35260      1  0 Aug04 ?        00:00:32 /usr/local/redis-cluster/bin/redis-server 127.0.0.1:9001 [cluster]
root      35262      1  0 Aug04 ?        00:00:32 /usr/local/redis-cluster/bin/redis-server 127.0.0.1:9002 [cluster]
root      35264      1  0 Aug04 ?        00:00:32 /usr/local/redis-cluster/bin/redis-server 127.0.0.1:9003 [cluster]
root      35269      1  0 Aug04 ?        00:00:32 /usr/local/redis-cluster/bin/redis-server 127.0.0.1:9004 [cluster]
root      35277      1  0 Aug04 ?        00:00:32 /usr/local/redis-cluster/bin/redis-server 127.0.0.1:9005 [cluster]
root      35285      1  0 Aug04 ?        00:00:32 /usr/local/redis-cluster/bin/redis-server 127.0.0.1:9006 [cluster]

 

三、根據節點創建集羣

Redis 5.0開始不再使用ruby搭建集羣,而是直接使用客戶端命令 redis-cli 來創建。

如果用ruby命令在>5.0.0版本上創建會報如下提示信息:

root@rocketmq-nameserver1 bin]# /usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.229.128:9001 192.168.229.128:9002 192.168.229.128:9003 192.168.229.128:9004 192.168.229.128:9005 192.168.229.128:9006
WARNING: redis-trib.rb is not longer available!
You should use redis-cli instead.

All commands and features belonging to redis-trib.rb have been moved
to redis-cli.
In order to use them you should call redis-cli with the --cluster
option followed by the subcommand name, arguments and options.

Use the following syntax:
redis-cli --cluster SUBCOMMAND [ARGUMENTS] [OPTIONS]

Example:
redis-cli --cluster create 192.168.229.128:9001 192.168.229.128:9002 192.168.229.128:9003 192.168.229.128:9004 192.168.229.128:9005 192.168.229.128:9006 --cluster-replicas 1

To get help about all subcommands, type:
redis-cli --cluster help

利用如下客戶端命令創建集羣:

./redis-cli --cluster create 127.0.0.1:9001 127.0.0.1:9002 127.0.0.1:9003 127.0.0.1:9004 127.0.0.1:9005 127.0.0.1:9006 --cluster-replicas 1

創建過程如下:

[root@rocketmq-nameserver1 bin]# ./redis-cli --cluster create 127.0.0.1:9001 127.0.0.1:9002 127.0.0.1:9003 127.0.0.1:9004 127.0.0.1:9005 127.0.0.1:9006 --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:9004 to 127.0.0.1:9001
Adding replica 127.0.0.1:9005 to 127.0.0.1:9002
Adding replica 127.0.0.1:9006 to 127.0.0.1:9003
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 3be0f5edc4ddd99e8ff78e304e894231d62f773f 127.0.0.1:9001
   slots:[0-5460] (5461 slots) master
M: 0fcca51dae4ad914912b11d6a741f4214569dd8d 127.0.0.1:9002
   slots:[5461-10922] (5462 slots) master
M: 759640e4e63853399068cc36e4dd4b4105690e56 127.0.0.1:9003
   slots:[10923-16383] (5461 slots) master
S: a1c389ecaec93406723acea259c7df2dd2882e7c 127.0.0.1:9004
   replicates 759640e4e63853399068cc36e4dd4b4105690e56
S: 06186a32a91fe5621ef0c065eae11dd3f539c689 127.0.0.1:9005
   replicates 3be0f5edc4ddd99e8ff78e304e894231d62f773f
S: b1ee1083a54c7d2467e70a7fb761cc5857b4e8f9 127.0.0.1:9006
   replicates 0fcca51dae4ad914912b11d6a741f4214569dd8d
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:9001)
M: 3be0f5edc4ddd99e8ff78e304e894231d62f773f 127.0.0.1:9001
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
S: a1c389ecaec93406723acea259c7df2dd2882e7c 127.0.0.1:9004
   slots: (0 slots) slave
   replicates 759640e4e63853399068cc36e4dd4b4105690e56
S: 06186a32a91fe5621ef0c065eae11dd3f539c689 127.0.0.1:9005
   slots: (0 slots) slave
   replicates 3be0f5edc4ddd99e8ff78e304e894231d62f773f
M: 0fcca51dae4ad914912b11d6a741f4214569dd8d 127.0.0.1:9002
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: b1ee1083a54c7d2467e70a7fb761cc5857b4e8f9 127.0.0.1:9006
   slots: (0 slots) slave
   replicates 0fcca51dae4ad914912b11d6a741f4214569dd8d
M: 759640e4e63853399068cc36e4dd4b4105690e56 127.0.0.1:9003
   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@rocketmq-nameserver1 bin]# /usr/local/redis-cluster/bin/redis-cli -c -h 127.0.0.1 -p 9001
127.0.0.1:9001> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:45
cluster_stats_messages_pong_sent:40
cluster_stats_messages_sent:85
cluster_stats_messages_ping_received:35
cluster_stats_messages_pong_received:45
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:85
127.0.0.1:9001> set name Johnson
-> Redirected to slot [5798] located at 127.0.0.1:9002
OK
127.0.0.1:9002> get name
"Johnson"
127.0.0.1:9002> 
[root@rocketmq-nameserver1 bin]# /usr/local/redis-cluster/bin/redis-cli -c -h 127.0.0.1 -p 9005
127.0.0.1:9005> get name
-> Redirected to slot [5798] located at 127.0.0.1:9002
"Johnson"
127.0.0.1:9002> cluster nodes
3be0f5edc4ddd99e8ff78e304e894231d62f773f 127.0.0.1:9001@19001 master - 0 1533424812000 1 connected 0-5460
0fcca51dae4ad914912b11d6a741f4214569dd8d 127.0.0.1:9002@19002 myself,master - 0 1533424815000 2 connected 5461-10922
759640e4e63853399068cc36e4dd4b4105690e56 127.0.0.1:9003@19003 master - 0 1533424814927 3 connected 10923-16383
a1c389ecaec93406723acea259c7df2dd2882e7c 127.0.0.1:9004@19004 slave 759640e4e63853399068cc36e4dd4b4105690e56 0 1533424813922 4 connected
b1ee1083a54c7d2467e70a7fb761cc5857b4e8f9 127.0.0.1:9006@19006 slave 0fcca51dae4ad914912b11d6a741f4214569dd8d 0 1533424814000 6 connected
06186a32a91fe5621ef0c065eae11dd3f539c689 127.0.0.1:9005@19005 slave 3be0f5edc4ddd99e8ff78e304e894231d62f773f 0 1533424815930 5 connected

 

參考

安裝高版本ruby:https://blog.csdn.net/gaozongzonggao/article/details/80793864

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章