0

我正在使用redis和我的spring boot应用程序使用jedis,spring-data-redis。我想通过以下方式控制redis的持久化机制。

  • 在一种情况下,我希望将数据持久化到转储文件中,以便在重新启动 redis 服务器时可以访问该数据。

  • 在第二种情况下,我想将数据保留在内存中的 redis 中,并且应用程序可以访问,直到 redis 服务器正在运行,并且应该在 redis 服务器重新启动时被丢弃。

我已经阅读了redis 数据持久性策略,它似乎允许在某些时间间隔内存储数据,但是有什么方法可以仅以编程方式控制持久性而不使用基于时间间隔的持久性机制

4

1 回答 1

1

我找到了解决这个问题的方法。因此,我仅以编程方式控制持久性所做的更改如下

  • 注释 redis 配置文件中的所有保存行。这将停止 redis 默认的基于时间/操作的持久性机制。

  • 然后,只要您想将数据保存在磁盘上,就调用save()bgsave() 。

所以使用RedisTemplate你可以调用

redisTemplate.getConnectionFactory().getConnection().save();

这将保留磁盘上的更改。

根据我的要求,我将一个shouldPersist标志传递给我的存储库方法来决定是否保留数据。如果数据没有被持久化使用save,否则bgsave它将在服务器重新启动时被丢弃。这就是我想要的一些场景。

于 2020-06-27T05:05:18.250 回答