Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
销毁期间,存储在Spring(HTTP)会话中的数据不会从Redis中删除_Spring_Redis_Spring Session - Fatal编程技术网

销毁期间,存储在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过期事件 以更确定的方式发射