如何以编程方式控制redis中的持久性

klh5stk1  于 2021-06-10  发布在  Redis
关注(0)|答案(1)|浏览(369)

我使用redis和我的spring boot应用程序,使用jedis,spring data redis。我想通过以下方式控制redis的持久性机制。
在一种情况下,我希望将数据持久化到转储文件中,以便在重新启动redis服务器时可以访问该数据。
在第二种情况下,我希望将数据保存在内存中的redis中,并且应用程序可以访问这些数据,直到redis服务器正在运行,并且应该在redis服务器重新启动时丢弃这些数据。
我已经阅读了redis数据持久性策略,它似乎允许在一些时间间隔上存储数据,但是有没有什么方法可以只通过编程控制持久性&而不使用基于时间间隔的持久性机制

n9vozmp4

n9vozmp41#

我找到了解决这个问题的办法。因此,我仅以编程方式控制持久性所做的更改如下
注解redis配置文件中的所有保存行。这将停止redis默认的基于时间/操作的持久化机制。
然后调用save()或bgsave(),只要您想在光盘上保存数据。
所以使用redistemplate可以调用

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

这将保留光盘上的更改。
根据我的要求,我要通过 shouldPersist 标记到我的存储库方法以决定是否持久化数据。如果数据不是使用 save 或者 bgsave 它将在服务器重新启动时被丢弃。这就是我想要的一些场景。

相关问题