在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

使用redis管理用户登录会话的方法

107次阅读
没有评论

共计 2025 个字符,预计需要花费 6 分钟才能阅读完成。

登录和 cookie 缓存

对于用来登录的 cookie,有两种常见的方法可以将登录信息存储在 cookie 里面:一种是签名(signed)cookie,另一种是令牌(token)cookie。

签名 cookie 通常会存储用户名,可能还有用户 ID、用户最后一次成功登陆的时间,以及网站觉得有用的其他任何信息。除了用户的相关信息外,签名 cookie 还包含一个签名,服务器可以使用这个签名来验证发送的信息是否未经改动(比如将 cookie 中的登录用户名改成另一个客户)。

令牌 cookie 会在 cookie 里面存储一串随机字节作为令牌,服务器可以根据令牌在数据库中查找令牌的拥有者。下表展示了签名 cookie 和令牌 cookie 的优点与缺点。


签名 cookie
验证 cookie 所需的一切信息都存储在 cookie 里面。cookie 可以包含额外的信息(additional information),并且对这些信息进行签名也很容易
正确地处理签名很难。很容易忘记对数据进行签名,或者忘记验证数据的签名,从而造成安全漏洞

令牌 cookie
添加信息非常容易。cookie 的体积非常小,因此移动端和速度较慢的客户端可以更快地发送请求
需要在服务器中存储更多信息。如果使用的是关系数据库,那么载入和存储 cookie 的代价可能会更高

import java.util.Set;
import redis.clients.jedis.Jedis;
public class Login {
public String checkToken(Jedis conn,String token){
return conn.hget(“login:”, token);
public void updateToken(Jedis conn,String token,String user,String item){
long time=System.currentTimeMillis()/1000;
conn.hset(“login:”, token, user);// 维持令牌与用户之间的映射
conn.zadd(“recent:”, time, token);// 保存令牌最后一次出现的时间
if(item!=null){
conn.zadd(“viewd:”+token, time, item);// 根据这个令牌来设置该用户在这个时间戳访问的商品名字
conn.zremrangeByRank(“viewd:”+token, 0, -26);// 移除就的用户记录,只保留用户浏览过的 25 个商品。
conn.zincrby(“viewd:”, -1, item);
public class CleanSessionsThread extends Thread{
private Jedis conn;
private int limit;
private boolean quit;
public CleanSessionsThread(int limit) {
// TODO Auto-generated constructor stub
this.conn=new Jedis(“localhost”);
conn.select(15);
this.limit=limit;
public void quit(){
quit=true;
@Override
public void run() {
// TODO Auto-generated method stub
while(!quit){
long size=conn.zcard(“recent:”);// 依据登录时间确定在线人数
if(size =limit){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}else{
long endIndex=Math.min(size-limit,100);
Set String tokensSet=conn.zrange(“recent:”, 0, endIndex-1);
String[] tokens=tokensSet.toArray(new String[tokensSet.size()]);
ArrayList String sessionKeys=new ArrayList ();
for(String token:tokens){
sessionKeys.add(“viewd:”+token);
conn.del(sessionKeys.toArray(new String[sessionKeys.size()]));
conn.hdel(“login:”, tokens);
conn.zrem(“recent:”, tokens);
}

以上这篇使用 redis 管理用户登录会话的方法就是丸趣 TV 小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持丸趣 TV。

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计2025字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 一级做a爰片欧美aaaa | 国产又色又爽又高潮免费 | 国产成人在线视频免费观看 | 丰满的少妇愉情hd高清果冻传媒 | 亚洲无码在线播放 | 亚洲国产精品无码久久sm | 欧洲亚洲一区 | 成人精品视频一区二区 | 国产精品深夜福利免费观看 | 国产伊人自拍 | 网www天堂资源在线 网红毛片 | 久久久久一| 亚洲国产精品无码观看久久 | 巨骚综合网 | 一二三区 | 97国产在线公开免费观看 | 黄色日本视频 | 精品伊人久久久大香线蕉天堂 | 免费的很黄很污的视频 | 老司机精品线视频免费观看 | 欧美激情综合网 | 国产爆乳美女娇喘呻吟 | 一二三四视频6在线观看 | 熟女熟妇伦av网站 | 久久免费福利视频 | 特黄大片又粗又大又暴 | 国产日韩欧美成人 | 亚洲综合久久无码色噜噜赖水 | 永久免费在线 | 亚洲午夜福利在线观看 | 在线观看欧美日韩 | 色www永久免费视频 色www永久免费网站国产 | 国产 在线 | 日韩 | 国产顶级熟妇高潮xxxxx | 日本一级毛片在线播放 | 欧美激情亚洲 | 国产精品欧美在线不卡 | 欧美中文字幕一区二区三区 | 亚洲视频免费在线观看 | 久久国产视频在线观看 | 日本免费一区二区三区 |