问题:正如github上issue描述,expired事件有时监听会丢失,spring-session不支持redis集群这种场景。https://github.com/spring-pro…
原因:spring-session默认会随机订阅redis集群中所有主备节点中一台,而创建带ttl参数的session连接只会hash到所有主节点中一台。只有订阅和session创建连接同时连接到一台redis节点才能监听到这个ttl session产生的expired事件。
解决方案:自己对所有redis集群主备节点进行expired事件订阅。具体可以参考实现: