在 REDIS DB 上执行 CRUD 操作时,必须指定在对键/值进行操作时应用的数据库。我想知道是否可能对某个指定数据库的键/值进行快照(持久化)而不是为其他数据库?
我喜欢使用一个数据库来管理序列化设置,但使用另一个数据库来存储集合数据,这些数据也可以从 R 内部访问,但应该严格在内存中且非持久化。
谢谢
在 REDIS DB 上执行 CRUD 操作时,必须指定在对键/值进行操作时应用的数据库。我想知道是否可能对某个指定数据库的键/值进行快照(持久化)而不是为其他数据库?
我喜欢使用一个数据库来管理序列化设置,但使用另一个数据库来存储集合数据,这些数据也可以从 R 内部访问,但应该严格在内存中且非持久化。
谢谢
TL:博士;您不能为一个数据库启用快照,而不能为其他数据库启用快照。
在这种情况下(处理多个工作流时)最好的办法是使用自己的配置生成 2 个 redis 服务器。
然后,您将能够设置一个没有持久性的 Redis 服务器(严格在内存中)(save ""
)和另一个具有细粒度持久性的 Redis 服务器,具体取决于您的写入使用情况。
请参阅Redis-conf:
################################ SNAPSHOTTING #################################
#
# Save the DB on disk:
#
# save <seconds> <changes>
#
# Will save the DB if both the given number of seconds and the given
# number of write operations against the DB occurred.
#
# In the example below the behaviour will be to save:
# after 900 sec (15 min) if at least 1 key changed
# after 300 sec (5 min) if at least 10 keys changed
# after 60 sec if at least 10000 keys changed
#
# Note: you can disable saving at all commenting all the "save" lines.
#
# It is also possible to remove all the previously configured save
# points by adding a save directive with a single empty string argument
# like in the following example:
#
# save ""
不,当redis持久化到磁盘时,它会将整个数据集持久化到磁盘。此外,不推荐使用多数据库配置,因此我建议不要依赖它。