gpt4 book ai didi

redis - 将一些redis数据归档到磁盘

转载 作者:IT王子 更新时间:2023-10-29 06:04:43 26 4
gpt4 key购买 nike

我最近一直在使用 redis,真的很喜欢它。我最熟悉持久性(rdb 和 aof)。我确实有一个问题。一旦不再重要,我希望能够有选择地将我的一些数据“存档”到磁盘(或更便宜的存储)。我真的不想删除它,因为它在某些时候可能很有值(value)。

我所有的 key 都被命名为 id_<id>_<someattribute> .因此,当我完成 id 4 后,我想“存档”所有匹配 id_4_* 的所有键。 .我可以很容易地在命令行中查看它们,但是我不能对它们做任何事情,persay。我有相当多的数据(非常大的位图)与这个数据集相关联,坦率地说,一旦 ID 不再相关或不重要,我就负担不起空间了。

如果这是 mysql,我会有不同的表,并且很容易将其转储到一个 .sql 文件,然后删除该表。实际的 .sql 文件对我没有直接用处,但如果/当我需要时,我可以重新导入数据。或者,也许我必须使用 mysql 数据库,并且我想将一个表移动到另一个数据库。这些过程是否有 redis 推论?有没有办法制作一个 rdb 或 aof 文件作为数据的一个子集?

如有任何帮助或意见,我们将不胜感激!谢谢!

最佳答案

@Hoseong Hwang 最近问我做了什么,所以我发布了我最后做了什么。

其实很简单。我的 key 空间被不同的用户分割出来,这让我受益匪浅。我所有的 key 都是结构 user_<USERID>_<OTHERVALUES> .我的归档需求是基于用户的,一些用户的数据不再需要保存在 redis 中。

因此,我启动了另一个 redis-server 实例,在本地的另一个端口(6380?)或另一台机器上,没有区别。然后,我写了一个简短的脚本,基本上就是调用 KEYS user_<USERID>_* (我了解 KEYS 的阻塞性质,我的 key 空间很小没关系,如果这对您来说是个问题,您可以使用 SCAN。)然后,对于每个 key ,我 MIGRATE D 他们到那个新的 redis-server实例。全部完成后。我做了一个SAVE以确保该实例的 rdb 文件是最新的。现在我有了那个 rdb,它就是我想要存档的内容。然后我终止了那个临时的 redis-server内存被回收。

现在,将该 rdb 文件保存在某个地方,以便宜、安全的方式保存。如果您再次需要它,请按照我上面的过程进行相反的操作,将这些 key 放回您的主 redis-server 中。会相当简单。

关于redis - 将一些redis数据归档到磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17415942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com