redis集群有三种方式,
1,主从模式,即一个master,一个slaver
2,哨兵模式,哨兵模式建立在主从模式基础上,一主多从或多主多从
当主挂了之后,会在从节点里选举一个作为主节点,这个时候redis会有
一个空档期,即不可写入。而且当数据过多,redis压力越大,是全部缓存在各个主从机子上
3,redis cluster 集群模式,官方推荐
建立在主从和哨兵基础上,采用分片规则存入到不同的主从里。如下图
每个cluster是一个哨兵主从,都有自己的分配的槽点,大致是
- cluster1覆盖1365-5460
- cluster2覆盖6827-10922
- cluster3覆盖12288-16383
client 设置key/value的时候,会有一个哈希槽算法:CRC16('key')%16384 = 2412
这样就会保存到cluster1节点,从而实现数据的分片存储。
而且当主节点挂掉之后会选举从节点马上上任主节点
从而实现redis的高可用性。
下面是部署redis cluster的步骤。
1,安装redis。
2,建立对应的文件目录
3,将安装后的redis配置文件redis.conf拷贝到
/usr/local/redis-cluster/conf目录并修改对应文件名
4,修改对应的配置文件
port 6380 # 端口
cluster-enabled yes # 打开
cluster-config-file /usr/local/redis-cluster/conf/nodes-6380.conf
cluster-node-timeout 15000
appendonly yes
5,在/usr/local/redis-cluster/下写启功脚本
path=conf/ cd $path #启动redis redis-server redis-6379.conf redis-server redis-6380.conf redis-server redis-6381.conf redis-server redis-6382.conf redis-server redis-6383.conf redis-server redis-6384.conf # 创建cluster集群 redis-cli --cluster create 192.168.89.132:6379 192.168.89.132:6380 192.168.89.132:6381 192.168.89.132:6382 192.168.89.132:6383 192.168.89.132:6384 --cluster-replicas 1
注意IP不要写127.0.0.1,不然到时候测试的时候,会有问题。
6,启动脚本,出现提示的时候,输入yes,最后提示成功。
查看主从节点情况 redis-cli -p 6379 cluster nodes
写测试端测试 我用的是springboot,引入别人写的包https://github.com/niuzhiweimr/redis-spring-boot-starter
测试情况如下图:
1,set10个键值对到redis,成功
2,查看数据已经存储到对应的redis cluster中
大概这样就可以实现了redis的集群和分布式分片存储数据,不懂可以提问,大家一起学习
原文链接:https://blog.csdn.net/shrek11/article/details/103187258
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/16929