Redis键空间通知(说明)
基于redis的发布订阅功能,实现,当对一个key做出操作后,可以对改建进行监听,来做后续的处理。
在spring-session中支持当一个session过期后,来做一些后续的操作。那是如何实现的呢。
- 通过健空间通知接受到key的变动(RedisOperationsSessionRepository.onMessage())
- 通过applicationEventPublisher来实现监听
有多种事件SessionCreatedEvent,SessionDeletedEvent等
通过HttpSessionListener来进行监听 - 遍历监听器来执行对应的后续操作SessionEventHttpSessionListenerAdapter.onApplicationEvent()
redis中sessions和sessions:expires都会同步的更新过期时间
但是只有sessions:expires删除才会触发后续操作
参考文档
Redis键空间通知(Keyspace Notifications)
spring-session(一)揭秘续篇