《Redis实战》 - 初识Redis

简介

特点

Redis(Remote Dictionary Server) 速度很快的非关系型内存数据库,支持持久化。
用于高性能,空间小的场景。

String SET GET DEL
List RPUSH LRANGE LINDEX LPOP
Set SADD SMEMBERS SISMEMBER SREM SINTER/SUNION/SDIFF
HashSet HSET HGET HGETALL HDEL
ZSet ZADD ZRANGE ZRANGEBYSCORE ZREM ZINTERSTORE

使用案例

下例通过Redis存储用户的基本信息,最近登陆时间,最近看过的产品,购物车信息。
HashSet:key = "userInfo:" value = token,userInfo存储用户信息。token->userInfo
ZSet: key = "latestTime:" value = token,timeStamp存储该用户最近查看时间。 token->latestTime
ZSet: key = "viewed:"+token value = goods,timeStamp 存储该用户最近看过的产品。 token ->goods
ZSet: key = "viewed:" value = goods,viewScore 存储该产品被看的权重。 按顺序goods集合。
HashSet:key = "cart:" +token value = goods,count存储购物车信息。token->goods+count。

cookie缓存

签名cookie: 用户信息+签名。验证cookie的所有信息都在cookie中。/ 但处理签名比较麻烦。
令牌cookie: 签名。体积小。/ 但要在服务器中存储更多的信息。

检查令牌登录:通过cookie获取到用户信息

User checkToken(Connect conn, Token token){
   
	return conn.hget("userInfo:",token);  //userInfo:+token = realKey
}

更新token信息:
用户请求时,记录有价值的信息(最近登录时间,最近浏览商品)。

void updateToken(Connect conn, Token token, User user,Goods goods= Null){
   
	timeStamp = time.time();
	conn.hset("userInfo:",token,user);         //token绑定 user
	conn.zadd("latestTime:",token,timeStamp);  //更新最近查看时间
	if( goods != Null ){
                          //如果在浏览商品         
		String key = "viewed:"+token;          
		conn.zadd(key,goods,timeStamp);	                
		conn.zremrangebyrank(key,0,-26);       //只保留最近浏览的25个商品
		conn.zincrby("viewd:",goods,1);        //score越小,排名越靠前,展示的时候可以倒序下
	}
}

及时清除ses

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛阳八中我最棒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值