redis cluster 集群实现方式 分布式分片存储

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的集群和分布式分片存储数据,不懂可以提问,大家一起学习

猜你喜欢

转载自blog.csdn.net/shrek11/article/details/103187258