我正在使用新发布的Spring Session组件进行PoC。这由Redis存储库备份,其中会话和会话中存储的对象/数据都被持久化。
问题 :
清理Redis商店是否有责任?如果我有 我必须手动存储在我的会话中的许多数据元素 在会话销毁期间从redis商店清理它们(注销和 超时事件)。
更新 :
虽然我发布了这个问题并且回去了(可能是在3/4分钟之后) 到Redis-CLI列出密钥,现在我找不到Customer1对象。 这是否意味着Redis会对一些常规的清理工作进行清理 区间,就像垃圾收集一样?
答案 0 :(得分:2)
Session Expiration section Spring Session reference详细描述了会话的清理方式。
来自文档:
这种方法的一个问题是Redis不保证 如果过期事件未被激活则将被触发 访问。特别是Redis用于清理的后台任务 过期密钥是低优先级任务,可能不会触发密钥 过期。有关其他详细信息,请参阅Timing of expired events Redis文档中的部分。
...
出于这个原因,每个会话到期也会被跟踪到 最近的分钟。这允许后台任务访问 可能过期的会话,以确保Redis过期事件 以更确定的方式解雇。