比方说,我们有500 as的在线数据,所有这些数据都保存在redis中,设置了近10^8个密钥。不幸的是,集合数据结构不再适用于系统,我们希望将所有集合迁移到具有所有相同初始分数(如时间戳)的zset中。
我发现我们可以使用zinterscore new_zset 1 orig_set weights timestamp命令来实现迁移。这是否假设我们需要将内存量临时扩展到1.0 ~ 1.5TB以进行上述转换。但是这需要多长时间呢?有没有人遇到过类似的情况(在线数据结构改变)?或者从根本上说,我应该这样做吗?任何建议都将不胜感激。
发布于 2018-09-03 16:51:14
我不认为使用ZINTERSTORE来完成这项工作是个好主意。正如你已经提到的,它将花费太多的额外内存,并在很长一段时间内阻塞你的Redis,因为你的数据集非常大。
相反,您应该使用SSCAN命令迭代集合,并使用ZADD命令将项目放入排序的集合中。
https://stackoverflow.com/questions/52143675
复制相似问题