2021/8/27
集群 Redis 使用实践
2021/8/27
2021/8/27 2
目录
• 设计目标
• 支持的数据类型
• 通信协议
• 集群部署方式
• 集群中节点的作用
• 集群的工作原理
• 分区性(数据分布模型)
• 数据访问方式---持久性重定向机制
• 数据访问方式---临时性重定向机制
• 集群的创建过程
• 创建集群的建议原则
• 哈希槽迁移过程
• 注意事项
• 客户端要求
• 使用AclRedis库
• redis_builder工具
• 参考
2021/8/27 3
设计目标
• 1、在线性扩展情况下依然保持高性能:
• 无中心节点,不需要代理服务,异步复制,没有数据的合并
• 2、保证一定程度的写安全:
• 如果一个主节点失效,则可能会丢掉一部分正在写往该节点的数据
• 3、可靠性:
• 为了保证数据一致性,而牺牲了一部分容错性
2021/8/27 4
非阻塞通信方式
优点:
1、支持高并发,通信效率高;
2、占用资源少,单线程通信方式下 CPU 亲和性较好。
缺点:
1、编程复杂度高,容易出错;
2、业务逻辑被通信方式分隔的支离破碎。
异步事件
引擎
select
poll
epoll
kqueue
iocp
accept
connect
write
read
OnAccept
OnConnect
OnWrite OnRead
系统事件引擎
系统API异步化
异步回调过程
2021/8/27 5
支持的数据类型
• 一、字符串(String)类型:
• 子类型及其操作:字符串(添加、追加、区间读写、长度、位操作)、整数(增
减、位操作)、浮点数(增加)
• 二、哈希(Hash)类型:由某个键指定的属性域集合,表现形式如下:
•
• 属性类型操作:字符串(添加、删除、读取、长度)、整型数/浮点数增加等
• 三、列表数组(List)类型:针对列表元素的首/尾部添加/弹出、指定下标的添加/
读取等
• 四、集合(Set)类型:集合元素的添加、弹出、删除、移动、取交集/并集/差集等
• 五、有序集合(SortedSet)类型:具有评分值的元素集合,该评分值决定了该元
素在某个指定集合的先后顺序。功能有元素的添加、删除、读取(按评分值、范围
)、取交集/并集
• 六、地理位置(Geo)类型:与地址位置坐标相关的数据类型计算
key0 Filed name Filed value
Filed name Filed value
…. ….