redis存储session,重复登录怎么让前面的session失效?

dyllen
  • 306

session id作为key,我再次登录怎么让上次未失效的session失效?

回复
阅读 7.1k
4 个回答
✓ 已被采纳

存一个session id为key,uid为value作为session存储。
存一份uid作为key,session id为值,用来重复调用使上次未失效session失效。

一般 情况下 用户手动退出,我们会用程序清理session
二班情况下,浏览器长时间不用,超过我们设置的session 有效期。再次登陆会失败。
三班情况下,cookie 只要不实效,重新登陆以后,我们会先清理下session,然后在放数据。

Redis有三种过期键删除策略:

  • 定时删除:在设置键的过期时间的同时,创建一个定时器(timer).让定时器在键的

过期时间来临时,立即执行对键的蒯除操作。

  • 惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检査取得的键是否

过期,如果过期的话,就删除该键;如果没有过期,就返回该键。

  • 定期删除:每隔一段时间,程序就对数据库进行一次检査,删除里面的过期键。至

于要删除多少过期键,以及要检査多少个数据库,则由算法决定。

Redis服务器实际使用的是惰性删除和定期删除两种策略:通过配合使用这两种策略,服务器可以很好地在合理使用CPU时间和避免浪费内存空间之间取得平衡。

其实只要根据实际情况配置好就行了,redis默认已经完成了过期键删除。

如果再次登录时用户已登录,这时你不是自然而然的可以拿到session_id么。然后你去redis中干掉或者直接覆盖即可。

宣传栏