【发布时间】:2015-03-12 00:49:36
【问题描述】:
我正在使用新发布的 Spring Session 组件进行 PoC。这是由 Redis 存储库备份的,其中 Session 和存储在 session 中的对象/数据都被持久化。
- 在应用程序中创建了会话
- 在 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 Store 是用户的责任吗?如果我有 许多数据元素存储在我的会话中,我是否必须手动操作 在会话销毁期间从 redis 存储中清除它们(注销和 超时事件)。
更新:
虽然我发布了这个问题并返回(可能在 3/4 分钟后) 到 Redis-CLI 列出键,现在我找不到 Customer1 对象。 这是否意味着 Redis 定期执行清理 间隔,比如垃圾收集?
【问题讨论】:
标签: spring redis spring-session