redis-集群配置

集群配置


⾼可⽤:保证redis⼀直处于可⽤状态,即时出现了故障也有备⽤⽅案保证可⽤性
⾼并发:⼀个redis实例已经可以⽀持多达11w并发读操作或者8.1w并发写操作;但是如
果对于有更⾼并发需求的应⽤来说,我们可以通过读写分离、集群配置来解决⾼并发问题

 Redis集群


Redis集群中每个节点是对等的,⽆中⼼结构
数据按照slots分布式存储在不同的redis节点上,节点中的数据可共享,可以动态调整数
据的分布
可扩展性强,可以动态增删节点,最多可扩展⾄1000+节点
集群每个节点通过主备(哨兵模式)可以保证其⾼可⽤性

集群搭建

[root@theo ~]# cd /usr/local/redis-5.0.5
[root@theo redis-5.0.5]# mkdir cluster-conf
[root@theo redis-5.0.5]# cat redis.conf | grep -v "#"|grep -v "^$" >
cluster-conf/redis-7001.conf
[root@theo redis-5.0.5]# cd cluster-conf/
[root@theo cluster-conf]# ls
redis-7001.conf
[root@theo cluster-conf]# vim redis-7001.conf

[root@theo cluster-conf]# sed 's/7001/7002/g' redis-7001.conf > redis-7002.conf
[root@theo cluster-conf]# sed 's/7001/7003/g' redis-7001.conf > redis-7003.conf
[root@theo cluster-conf]# sed 's/7001/7004/g' redis-7001.conf > redis-7004.conf
[root@theo cluster-conf]# sed 's/7001/7005/g' redis-7001.conf > redis-7005.conf
[root@theo cluster-conf]# sed 's/7001/7006/g' redis-7001.conf > redis-7006.conf

启动6个redis实例

[root@theo cluster-conf]# redis-server redis-7001.conf &
[root@theo cluster-conf]# redis-server redis-7002.conf &
[root@theo cluster-conf]# redis-server redis-7003.conf &
[root@theo cluster-conf]# redis-server redis-7004.conf &
[root@theo cluster-conf]# redis-server redis-7005.conf &
[root@theo cluster-conf]# redis-server redis-7006.conf &

查看6个实例是否启动

[root@theo cluster-conf]# ps -ef|grep redis
root 4789 1 0 10:20 ? 00:00:00 redis-server *:7001
[cluster]
root 4794 1 0 10:20 ? 00:00:00 redis-server *:7002
[cluster]
root 4799 1 0 10:20 ? 00:00:00 redis-server *:7003
[cluster]
root 4806 1 0 10:21 ? 00:00:00 redis-server *:7004
[cluster]
root 4811 1 0 10:21 ? 00:00:00 redis-server *:7005
[cluster]
root 4816 1 0 10:21 ? 00:00:00 redis-server *:7006
[cluster]
[root@theo cluster-conf]# redis-cli --cluster create 你的公网ip:7001 47.96.11.185:7002 47.96.11.185:7003 47.96.11.185:7004 47.96.11.185:7005 47.96.11.185:7006 --cluster-replicas 1

 连接集群:

[root@theo cluster-conf]# redis-cli -p 7001 -c

集群管理

如果集群启动失败:等待节点加⼊
1. 云服务器检查安全组是否放⾏redis实例端⼝,以及+10000的端⼝
2. Linux防⽕墙是否放⾏redis服务(关闭防⽕墙)
3. Linux状态(top)---- 更换云主机操作系统
4. redis配置⽂件错误

创建集群:

[root@theo cluster-conf]# redis-cli --cluster create 47.96.11.185:7001 47.96.11.185:7002 47.96.11.185:7003 47.96.11.185:7004 47.96.11.185:7005 47.96.11.185:7006 --clusterreplicas 1

查看集群状态

[root@theo cluster-conf]# redis-cli --cluster info 47.96.11.185:7001
47.96.11.185:7001 (4678478a...) -> 2 keys | 5461 slots | 1 slaves.
47.96.11.185:7002 (e26eaf2a...) -> 0 keys | 5462 slots | 1 slaves.
47.96.11.185:7003 (5752eb20...) -> 1 keys | 5461 slots | 1 slaves.
[OK] 3 keys in 3 masters.
0.00 keys per slot on average.

平衡节点的数据槽数

[root@theo cluster-conf]# redis-cli --cluster rebalance 47.96.11.185:7001 
>>> Performing Cluster Check (using node 47.96.11.185:7001)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
*** No rebalancing needed! All nodes are within the 2.00% threshold.

迁移节点槽

删除节点

[root@theo cluster-conf]# redis-cli --cluster del-node 47.96.11.185:7001 4678478aa66b6d37b23944cf7db0ac07298538a4
>>> Removing node 4678478aa66b6d37b23944cf7db0ac07298538a4 from
cluster 47.96.11.185:7001
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.
[root@theo cluster-conf]# redis-cli --cluster info 47.96.11.185:7002 
47.96.11.185:7002 (e26eaf2a...) -> 1 keys | 8192 slots | 2 slaves.
47.96.11.185:7003 (5752eb20...) -> 2 keys | 8192 slots | 1 slaves.
[OK] 3 keys in 2 masters.
0.00 keys per slot on average.

添加节点

[root@theo cluster-conf]# redis-cli --cluster add-node 47.96.11.185:7007 47.96.11.185:7002

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值