这样的,我写了一个登录,用的是session。登录的时候,把sessionid用redis储存起来。
现在我想实现一个功能,就是两个用户登录同一个账户,后登录的把前登录的挤掉。
我的一种想法是,登录时,更新redis中存的sessionid,登录用户每做一次操作,都去redis中查询他登录时存的sessionid和当前的是否一致,不一致就是未登录。但是这样做会不会读redis的次数太频繁?会不会有压力?
还有一种想法,就是登录的时候,肯定能从redis中获取到上次存的sessionid,能不能通过这个sessionid把session文件给销毁,这样,前面登录的用户获取不到session文件,就算是未登录了。这种方法只是在登录的时候读取了数据库,读数据库的次数比较少。但是,有一点,我不知道怎么通过sessionid把文件销毁~~
各位大牛,这两个方法哪个好一点?第二个方法中,怎样通过sessionid把文件销毁?或者有没有更好的方法呢?谢谢指教
第二种方法没看明白。是说B登录的时候获得session_id然后销毁A的session文件吗?这怎么做得到
第二种方法没看明白。是说B登录的时候获得session_id然后销毁A的session文件吗?这怎么做得到
恩,我就是这个意思,所以我想知道怎么能做到。 做不到啊,session是保存在用户浏览器的 不是同一台电脑登录的话怎么可能删除
或者你的意思是A B两个账号只在同一台电脑登录吗..
做不到啊,session是保存在用户浏览器的 不是同一台电脑登录的话怎么可能删除
或者你的意思是A B两个账号只在同一台电脑登录吗..
登录的时候,把sessionid用redis储存起来
你是用 用户名做键,还是用 sessionid 做键?
如果用用户名做键,那么 redis 中只会有一个 用户名存在,此时他的值(sessionid)不是你的话,就算你没登陆
如果用 sessionid 做键,那么需要依据用户名查询出对应的键(得到多个 sessionid)
遍历这些 sessionid 对不是你的 sessionid 做
session_id($sessionid);
session_start();
unset_session();
最后做
session_id($你的sessionid);
session_start();
登录的时候,把sessionid用redis储存起来
你是用 用户名做键,还是用 sessionid 做键?
如果用用户名做键,那么 redis 中只会有一个 用户名存在,此时他的值(sessionid)不是你的话,就算你没登陆
如果用 sessionid 做键,那么需要依据用户名查询出对应的键(得到多个 sessionid)
遍历这些 sessionid 对不是你的 sessionid 做
session_id($sessionid);
session_start();
unset_session();
最后做
session_id($你的sessionid);
session_start();
redis 是基于内存的,session 是基于文件的
你就不怕硬盘损坏?
redis 是基于内存的,session 是基于文件的
你就不怕硬盘损坏?
这有什么可不懂得吗?
杞人忧天,懂吧?
这有什么可不懂得吗?
杞人忧天,懂吧?