Redis在线数据结构从set更改为zset

时间:2018-09-03 05:37:53

标签: redis

说,我们有500GB的在线数据,所有这些数据都已保存为Redis,并具有将近10 ^ 8个键的设置。 不幸的是,设置的数据结构对系统不再适用,我们想迁移 所有集合都变成具有相同初始分数(如时间戳记)的zset。

我发现我们可以使用zinterscore new_zset 1 orig_set weights timestamp命令来完成迁移。 这是否假设我们需要为上述转换临时将内存量扩展到1.0〜1.5TB。 但是这需要多长时间?有谁遇到过这种情况(在线数据结构发生变化)吗? 还是从根本上来说,我应该这样做?任何建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

我认为使用ZINTERSTORE做这项工作不是一个好主意。正如您已经提到的那样,由于您的数据集非常大,它将占用过多的内存,并且会长时间阻塞您的Redis。

相反,您应该使用SSCAN命令来迭代 SET ,并使用ZADD命令将项目放入 SORTED SET