redis集群

redis集群


配置Redis集群步骤:
1.准备6台Redis服务器


配置redis
 81  tar -xzf redis-4.0.8.tar.gz 
   82  rpm -q gcc gcc-c++
   83  yum -y install gcc gcc-c++
   84  cd redis-4.0.8/
   85  make
   86  make install
   87  cd utils/
   88  ./install_server.sh 
   89  netstat -utnlp | grep :6379
   90  redis-cli -h 192.168.4.51 -p 6350
   91  netstat -utnlp | grep :6379
   92  /etc/init.d/redis_6379 status




2.配置Redis集群
2.2.1在每台redis服务器上做集群配置,然后重启redis服务
51 52 53 54 55 56


[root@52 ~]# ss -utnlp | grep redis
tcp    LISTEN     0      128    127.0.0.1:6379                  *:*                   users:(("redis-server",pid=1014,fd=6))
[root@52 ~]# redis-cli 
127.0.0.1:6379> Keys *
(empty list or set)
127.0.0.1:6379> exit
[root@52 ~]# /etc/init.d/redis_6379 stop
Stopping ...
Waiting for Redis to shutdown ...
Redis stopped
[root@52 ~]# /etc/init.d/redis_6379 status
cat: /var/run/redis_6379.pid: 没有那个文件或目录
Redis is running ()
[root@52 ~]# vim /etc/redis/6379.conf 
70 bind 192.168.4.55
93 port 6355
815 cluster-enabled yes
823 cluster-config-file nodes-6355.conf
829 cluster-node-timeout 5000
[root@52 ~]# vim /etc/init.d/redis_6379 
REDISPORT="6352"


[root@52 ~]# /etc/init.d/redis_6379 start
Starting Redis server...
[root@52 ~]# /etc/init.d/redis_6379 status
Redis is running (1478)
[root@52 ~]# ss -utnlp | grep redis
tcp    LISTEN     0      128    192.168.4.52:6352                  *:*                   users:(("redis-server",pid=1478,fd=6))
tcp    LISTEN     0      128    192.168.4.52:16352                 *:*                   users:(("redis-server",pid=1478,fd=8))


2.2.2 把ruby脚本拷贝的系统命令


[root@51 ~]# cd redis-4.0.8/
[root@51 redis-4.0.8]# ls
00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel  tests
BUGS             deps     MANIFESTO  runtest          sentinel.conf     utils
CONTRIBUTING     INSTALL  README.md  runtest-cluster  src
[root@51 redis-4.0.8]# cd src/
[root@51 src]# ls *.rb
redis-trib.rb
这个管理集群的执行文件




redis-trib.rb需要的运行环境
[root@51 ~]# ls /var/lib/redis/6379/
dump.rdb  nodes-6351.conf
[root@51 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@51 ~]# ls redis-4.0.8/src/redis-trib.rb 
redis-4.0.8/src/redis-trib.rb
[root@51 ~]# cp redis-4.0.8/src/redis-trib.rb /usr/local/sbin/
[root@51 ~]# ls /usr/local/sbin/redis-trib.rb 
/usr/local/sbin/redis-trib.rb
[root@51 ~]# rpm -q ruby
未安装软件包 ruby 
[root@51 ~]# yum install ruby rubygems
[root@51 ~]# rpm -q ruby
ruby-2.0.0.648-30.el7.x86_64
[root@51 ~]# ls redis-cluster/
redis-3.2.1.gem  ruby-devel-2.0.0.648-30.el7.x86_64.rpm
[root@51 ~]# cd redis-cluster/
[root@51 redis-cluster]# rpm -ivh --nodeps ruby-devel-2.0.0.648-30.el7.x86_64.rpm
警告:ruby-devel-2.0.0.648-30.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:ruby-devel-2.0.0.648-30.el7      ################################# [100%]
[root@51 redis-cluster]# gem redis-3.2.1.gem 
ERROR:  While executing gem ... (Gem::CommandLineError)
    Unknown command redis-3.2.1.gem
[root@51 redis-cluster]# gem install redis-3.2.1.gem 
Successfully installed redis-3.2.1
Parsing documentation for redis-3.2.1
Installing ri documentation for redis-3.2.1
1 gem installed










利用51作集权的管理


创建集群
[root@51 ~]# redis-trib.rb  create --replicas 1 \
> 192.168.4.51:6351 \
> 192.168.4.52:6352 \
> 192.168.4.53:6353 \
> 192.168.4.54:6354 \
> 192.168.4.55:6355 \
> 192.168.4.56:6356 \

>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.4.51:6351
192.168.4.52:6352
192.168.4.53:6353
Adding replica 192.168.4.55:6355 to 192.168.4.51:6351
Adding replica 192.168.4.56:6356 to 192.168.4.52:6352
Adding replica 192.168.4.54:6354 to 192.168.4.53:6353
M: b00bfb1d93247f56719582e8b9865ae374e17c33 192.168.4.51:6351
   slots:0-5460 (5461 slots) master
M: 2f002d4ec870d72d2f966c6051a586c57cff1afa 192.168.4.52:6352
   slots:5461-10922 (5462 slots) master
M: 45f61b35eaf179a4b161008b79c54122617048ee 192.168.4.53:6353
   slots:10923-16383 (5461 slots) master
S: 9672778d5a8c6685daa7339df325d93f6c73b6bd 192.168.4.54:6354
   replicates 45f61b35eaf179a4b161008b79c54122617048ee
S: 0ba5e235aa72f9ea10ed8f7da1a60caefc9b9b6c 192.168.4.55:6355
   replicates b00bfb1d93247f56719582e8b9865ae374e17c33
S: 20b20d6ddf38a67e8f81bb7badec220bf2be7b3a 192.168.4.56:6356
   replicates 2f002d4ec870d72d2f966c6051a586c57cff1afa
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.4.51:6351)
M: b00bfb1d93247f56719582e8b9865ae374e17c33 192.168.4.51:6351
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: 2f002d4ec870d72d2f966c6051a586c57cff1afa 192.168.4.52:6352
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 20b20d6ddf38a67e8f81bb7badec220bf2be7b3a 192.168.4.56:6356
   slots: (0 slots) slave
   replicates 2f002d4ec870d72d2f966c6051a586c57cff1afa
M: 45f61b35eaf179a4b161008b79c54122617048ee 192.168.4.53:6353
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 9672778d5a8c6685daa7339df325d93f6c73b6bd 192.168.4.54:6354
   slots: (0 slots) slave
   replicates 45f61b35eaf179a4b161008b79c54122617048ee
S: 0ba5e235aa72f9ea10ed8f7da1a60caefc9b9b6c 192.168.4.55:6355
   slots: (0 slots) slave
   replicates b00bfb1d93247f56719582e8b9865ae374e17c33
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.












16384 hash slot 范围0-16383
192.168.4.51
0-5460 (5461 slots)


192.168.4.52
5461-10922 (5462 slots) 


192.168.4.53
10923-16383 (5461 slots)




key/CRC16 值%16384
             7%16384 = 5723




查看集群信息


[root@53 ~]# cat /var/lib/redis/6379/nodes-6353.conf


20b20d6ddf38a67e8f81bb7badec220bf2be7b3a 192.168.4.56:6356@16356 slave 2f002d4ec870d72d2f966c6051a586c57cff1afa 0 1530608367585 6 connected
2f002d4ec870d72d2f966c6051a586c57cff1afa 192.168.4.52:6352@16352 master - 0 1530608365577 2 connected 5461-10922
0ba5e235aa72f9ea10ed8f7da1a60caefc9b9b6c 192.168.4.55:6355@16355 slave b00bfb1d93247f56719582e8b9865ae374e17c33 0 1530608366078 5 connected
b00bfb1d93247f56719582e8b9865ae374e17c33 192.168.4.51:6351@16351 master - 0 1530608367082 1 connected 0-5460
45f61b35eaf179a4b161008b79c54122617048ee 192.168.4.53:6353@16353 myself,master - 0 1530608366000 3 connected 10923-16383
9672778d5a8c6685daa7339df325d93f6c73b6bd 192.168.4.54:6354@16354 slave 45f61b35eaf179a4b161008b79c54122617048ee 0 1530608366580 4 connected




使用ruby脚本查看集权信息




[root@53 ~]# redis-cli -h 192.168.4.53 -p 6353
192.168.4.53:6353> CLUSTER nodes
20b20d6ddf38a67e8f81bb7badec220bf2be7b3a 192.168.4.56:6356@16356 slave 2f002d4ec870d72d2f966c6051a586c57cff1afa 0 1530609891080 6 connected
2f002d4ec870d72d2f966c6051a586c57cff1afa 192.168.4.52:6352@16352 master - 0 1530609890000 2 connected 5461-10922
0ba5e235aa72f9ea10ed8f7da1a60caefc9b9b6c 192.168.4.55:6355@16355 slave b00bfb1d93247f56719582e8b9865ae374e17c33 0 1530609891582 5 connected
b00bfb1d93247f56719582e8b9865ae374e17c33 192.168.4.51:6351@16351 master - 0 1530609891582 1 connected 0-5460
45f61b35eaf179a4b161008b79c54122617048ee 192.168.4.53:6353@16353 myself,master - 0 1530609891000 3 connected 10923-16383
9672778d5a8c6685daa7339df325d93f6c73b6bd 192.168.4.54:6354@16354 slave 45f61b35eaf179a4b161008b79c54122617048ee 0 1530609891582 4 connected
192.168.4.53:6353> 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:3
cluster_stats_messages_ping_sent:3169
cluster_stats_messages_pong_sent:2564
cluster_stats_messages_meet_sent:1
cluster_stats_messages_sent:5734
cluster_stats_messages_ping_received:2560
cluster_stats_messages_pong_received:3170
cluster_stats_messages_meet_received:4
cluster_stats_messages_received:5734
























首先准备6台redis服务器(服务按照默认配置运行即可)
在6台redis服务器上启用集群配置,并重启服务
创建集群 ruby脚本(管理: 创建 查看 删除 添加 )




创建集群时,保证数据库里没有数据。-----flushall

































































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值