解决spring-session在redis集群下监听expired事件失败

2017-11-17 11:07:51 704 思小齐 思小齐

问题:正如github上issue描述,expired事件有时监听会丢失,spring-session不支持redis集群这种场景。https://github.com/spring-pro...

原因:spring-session默认会随机订阅redis集群中所有主备节点中一台,而创建带ttl参数的session连接只会hash到所有主节点中一台。只有订阅和session创建连接同时连接到一台redis节点才能监听到这个ttl session产生的expired事件。

解决方案:自己对所有redis集群主备节点进行expired事件订阅。具体可以参考实现:

https://github.com/wusunshine...