-
Notifications
You must be signed in to change notification settings - Fork 1.2k
pika集群迁移slot命令
chejinge edited this page Jul 23, 2023
·
3 revisions
pika支持codis sync slot迁移设计实现 为兼容pika官方版本,所以pika支持codis slot迁移实现是修改pika实现的,而不是修改pika的存储库nemo实现。 实现方法是,增加slot key(共1024个),set类型,用户发过来的每个key在进行修改操作(set, del, incr, hset, sadd , lpush, zadd......)时,根据slot = crc32(key)%1024计算出该key对应的的slot,然后将该key sadd或者srem到该slot对应的set key;迁移时,指定slot,从该slot spop(由于pika的spop会触发compact,所以是通过sscan和srem实现spop)出一个key然后迁移到目的的pika server。该实现的优点是和官方版本数据兼容,可以直接进行替换升级,不需要洗数据等,回退也方便。不足之处是每次修改操作均要有额外的set操作,降低了性能(大概降低10%~20%),增加了存储(增加30%左右),为了解决性能降低,存储增加的问题,所以增加了pika支持slot迁移的开关,开关关闭时,性能及存储使用和官方版本一致,打开开关时支持slot迁移。
- 安装使用
- 支持的语言和客户端
- 当前支持的Redis接口以及兼容情况
- 配置文件说明
- 数据目录说明
- info信息说明
- 部分管理指令说明
- 差异化命令
- Pika Sharding Tutorials
- Pika订阅
- 配合sentinel(哨兵)实现pika自动容灾
- 如何升级到Pika3.0
- 如何升级到Pika3.1或3.2
- Pika多库版命令、参数变化参考
- Pika分片版本命令
- 副本一致性使用说明
- Pika内存使用
- Pika最佳实践
- 整体架构
- 线程模型
- 全同步
- 增量同步
- 副本一致性
- 快照式备份
- 锁的应用
- nemo存储引擎数据格式
- blackwidow存储引擎数据格式
- Pika源码学习--pika的通信和线程模型
- Pika源码学习--pika的PubSub机制
- Pika源码学习--pika的命令执行框架
- Pika源码学习--pika和rocksdb的对接
- pika-NoSQL原理概述
- pika在codis中的探索
- Pika 笔记
- pika 主从同步原理