Redis键过期和键迁移
键过期命令
expire key seconds
expireat key timestamp
ttl key
pttl key
pexpire key milliseconds
pexpire key milliseconds-timestamp
setex命令=set+expire的组合,不但是原子执行,同时减少了一次网络通讯的时间
键迁移
把部分数据从一个Redis实例迁移到另一个Redis(例如从生产环境迁移到测试环境)
- dump+restore
dump key
restore key ttl value
dump+restore可以实现在不同的Redis实例之间进行数据迁移的功能,整个迁移分为两步:
在源Redis上dump命令会将键值序列化,格式采用RDB格式
在目标Redis上,restore命令将上面序列化的值进行复原,其中ttl参数代表过期时间,ttl=0代表没有过期时间
注意:
整个迁移过程不是原子性的,而是通过客户端分步完成
迁移过程是开启了两个客户端连接,所以dump的结果不是在源Redis和目标Redis之间进行传输 - migrate
migrate host port key|"" destination-db timeout [copy] [replace] [keys key [key…]]
migrate命令实际上是由dump+restore+del三个命令组合而成,简化操作流程,而且具有原子性,支持迁移多个键,提高了迁移效率,migrate在水平扩容中起到重要作用