- spring/
- 销毁期间,存储在Spring(HTTP)会话中的数据不会从Redis中删除
销毁期间,存储在Spring(HTTP)会话中的数据不会从Redis中删除
销毁期间,存储在Spring(HTTP)会话中的数据不会从Redis中删除,spring,redis,spring-session,Spring,Redis,Spring Session,我正在使用新发布的Spring会话组件进行PoC。这由Redis存储库进行备份,会话和存储在会话中的对象/数据都将持久化到该存储库中
已在应用程序中创建会话
在Redis CLI中运行“Keys*”命令并看到一个新条目(如“spring:session:sessions:6b55103a-baf5-4a05-a127-3a9cfa15c164”)
在应用程序中,向会话添加了一个自定义bean
在Redis CLI中运行“Keys*”命令,并看到了另一个新条目
这个bean(如“\xac\xed\
我正在使用新发布的Spring会话组件进行PoC。这由Redis存储库进行备份,会话和存储在会话中的对象/数据都将持久化到该存储库中
已在应用程序中创建会话
在Redis CLI中运行“Keys*”命令并看到一个新条目(如“spring:session:sessions:6b55103a-baf5-4a05-a127-3a9cfa15c164”)
在应用程序中,向会话添加了一个自定义bean
在Redis CLI中运行“Keys*”命令,并看到了另一个新条目
这个bean(如“\xac\xed\x00\x05t\x00\tcustomer1”),因为
bean有一个值为“customer1”的字符串)
我已经配置了30秒的自动到期时间,并在这段时间内未使用该应用程序
sessionDestroyEvent被触发,并在实现ApplicationListener的侦听器中被捕获
在Redis CLI中运行“Keys*”命令,现在创建了第一个
会话的条目已丢失,但自定义bean对象
(customer1)仍然留在Redis中
问题:
清理Redis商店是用户的责任吗?如果我有
会话中存储了许多数据元素,是否必须手动执行
在会话销毁(注销和删除)过程中,从redis存储中清除它们
超时事件)
更新:
当我发布这个问题并返回时(可能在3/4分钟后)
要Redis CLI列出键,现在我找不到Customer1对象。
那么,这是否意味着Redis会定期进行清理
间隔,比如垃圾收集
详细描述了如何清理会话
从文件中:
这种方法的一个问题是Redis无法保证
当过期事件未被激活时,将触发该事件
访问。特别是Redis用来清理的后台任务
过期的密钥属于低优先级任务,可能不会触发密钥
到期有关更多详细信息,请参阅
Redis文档中的部分
由于这个原因,每个会话到期也会被跟踪到
最近一分钟。这允许后台任务访问
可能过期的会话,以确保Redis过期事件
以更确定的方式发射