redis集群

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: redis集群

一、概述

单机redis存在的问题

容量不足,一台redis写数据时候容量不足问题?

并发问题,一台redis写数据出现并发问题?

主从模式中,主机宕机或者主从修改,都需要在redis中修改ip地址等很麻烦

redis3.0前是通过主机代理方式,3.0后推荐无中心化集群配置

二、搭建

创建一个myredis文件夹(这里还是通过多个修改配置文件端口方式模拟多个服务器)复制redis.conf文件6份

对每个文件修内容如下(每个文件端口不同)


include /myredis/redis.conf

pidfile "/var/run/redis_6379.pid"

port 6379

dbfilename "dump6379.rdb"

cluster-enabled yes

cluster-config-file nodes-6379.conf

cluster-node-timeout 15000


启动6个redis查看



再次查看当前目录文件,可以看到已经生成了对应的节点配置文件



将六个redis合成一个集群

进入redis位置


cd /opt/redis-6.2.1/src

redis-cli --cluster create --cluster-relicas 1 192.168.10:6379 192.168.10:6389 192.168.10:6380 192.168.10:6381 192.168.10:6390 192.168.10:6391


说明:

  • 一个集群至少三个主节点
  • relicas 1 表示以最简单的方式搭建集群 即一主一丛 刚好3组
  • 分配原则尽量保证每个主数据库运行在不同的ip地址,每个从库和主库不在一个ip地址上

运行效果


连接集群并查看


redis-cli -c -p 6379

#任意一个端口都行

cluster nodes



三、插槽

上面第2点合成之后可以看到最后输出下面一句话

All 16384 slots covered

一个redis集群包含16384个插槽,数据库中每个键都属于这16384个插槽的其中一个。

集群使用公式CRC16(key)%16384来计算键key属于哪个槽,其中CRC16(key)语句用于计算键key的CRC16检验和

集群中每个节点负责处理一部分插槽,举个列子,如果一个集群可以有主节点,其中:

A节点负责处理0号至5460号插槽

B节点负责处理5461至10922号插槽

C节点负责处理10923至16383号插槽

测试插入一对 key-value,有明显的插槽分配

但是如果插入多对key-value出现问题

可以通过分组的方式解决上面问题,如下使用user分组

查看插槽中key对应的插槽值

cluster keyslot k1

统计插槽中key的数量

cluster countkeysinslot 4837

查看插槽中指定数量的值

cluster getkeysinslot 449 10

四、集群故障恢复

1、如果过主节点下线?从节点能否自动升为主节点?15秒超时

挂掉6379可以看到6389成为主机,当6379恢复自动成为6389从机

2、集群中某个节点 主从都宕机

如果某一段插槽的主从都挂掉,而cluster-require-full-coverage为yes,那么整个集群都挂掉,古国某一段插槽的主从都挂掉,二cluster-require-full-coverage为no,那么该插槽的数据全部不能使用也无法存储

五、jedis集群的开发

redis采用的无中心化。即使连接的不是主机,集群会自动切换主机存储,主机写 从机读,无论哪台主机写的数据,其他主机都可以读到数据


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4月前
|
存储 缓存 NoSQL
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
redis分布式锁、redisson、可重入、主从一致性、WatchDog、Redlock红锁、zookeeper;Redis集群、主从复制,全量同步、增量同步;哨兵,分片集群,Redis为什么这么快,I/O多路复用模型——用户空间和内核空间、阻塞IO、非阻塞IO、IO多路复用,Redis网络模型
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
|
3月前
|
监控 NoSQL Redis
看完这篇就能弄懂Redis的集群的原理了
看完这篇就能弄懂Redis的集群的原理了
137 0
|
5月前
|
存储 运维 NoSQL
Redis Cluster集群模式部署
Redis Cluster集群模式部署
123 4
|
5月前
|
监控 NoSQL 算法
手把手教你如何搭建redis集群(二)
手把手教你如何搭建redis集群(二)
412 1
|
5月前
|
存储 NoSQL 容灾
手把手教你如何搭建redis集群(一)
手把手教你如何搭建redis集群(一)
216 1
|
4月前
|
存储 NoSQL 算法
Redis 集群模式搭建
Redis 集群模式搭建
95 5
|
4月前
|
存储 缓存 NoSQL
高并发架构设计三大利器:缓存、限流和降级问题之Redis用于搭建分布式缓存集群问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之Redis用于搭建分布式缓存集群问题如何解决
|
4月前
|
缓存 NoSQL Java
Redis Spring配置集群
【7月更文挑战第5天】
79 10
|
3月前
|
NoSQL Redis
Redis——单机迁移cluster集群如何快速迁移
Redis——单机迁移cluster集群如何快速迁移
138 0
下一篇
无影云桌面