java使用redis的场景_Redis常见应用场景

String存储

点击计数功能,incr key:001自增,如链接点击数.

分布式锁 set key value nx px 1000//通过setnx设置随机值并设置失效时间,写值成功既加锁成功。

集群环境的session共享

List存储

常应用于队列,栈,可根据下标索引查找或范围内查询。

微信公众号订阅消息列表:

小明useId:001关注了阿里巴巴招聘和腾讯招聘公众号,

1.阿里巴巴先发了一条推送001:lpush userId:001:gongzhonghao 001

2.腾讯再发了一条推送002:lpush userId:001:gongzhonghao 002;

显示最新订阅消息三条:lrange userId:001:gongzhonghao 0 2

Hash存储

购物车的设计

ccc88bba127546d96233c27d7b753d9c.png

1.展示所有的购物车商品

2.购物车的商品总数

3.增加和减少商品的数量

4.移除商品

5.结算价格--通过页面参数可直接计算

加入购物车:hmset user01:cart001 goods1Id 1 goods2Id 2

展示即获取hash所有商品和数量:hgetall user01:cart001

Set存储

一:小程序有个抽奖活动,活动id为0001,基于redis怎么实现抽奖?

比如4个人参加抽奖。

1.把userId加入set:sadd act:0001 001 002 003 004;

2.查看抽奖用户有哪些:smembers act:0001

3.随机抽奖2个人:srandmember act:0001返回2个id;若中奖过的需要排除掉spop act:0001 2,表示随机抽取两个并从集合移除。

备注:有些版本不支持spop act:0001 count这种命令。

二:微博点赞or朋友圈点赞怎么设计?

易建联发布了一个微博weibo:001,

1.粉丝A点赞:sadd weibo:001 fensiA

2.查看用户B是否点赞过:sismember weibo:001 yonghuB,是返回1,否则0。

3.粉丝A取消点赞:srem weibo:001 fensiA--rem即remove

4.查看此条微博点赞的用户列表:smembers weibo:001

5.查看点赞总数:scard weibo:001

三.微博的微关系如何设计?共同关注?我关注的人也关注他?

1.我关注的人有这些:sadd meCare kobe yijianlian james

2.james关注的人有这些:sadd jamesCare kobe yijianlian yaoming

3.yaoming关注的人:sadd yaomingCare james curry rose

4.jemes和我me共同关注的人即交集:sinter meCare yaomingCare->返回james, intersection即交集.

5.我关注的人也关注他(kobe),我关注的人james也关注了kobe,

sismember meCare kobe--sismember jamesCare kobe

6.我可能认识的人

sdiff meCare yaomingCare //计算差集

zset有序集合

常用于排行榜,新闻话题榜等等。

百度页面的搜索热点设计实现,以日期为key。ec7fb874d864146226a091658e74adec.png

zadd hot:20191026 1 庆阳发现大油田 1 大连男孩尾随女性 1张兆旭腰伤复发

1.点击热点链接点击量+1,zincrby hot:20191026 1 庆阳发现大油田

2.排行榜实现,zrevrange hot:20191026 0 7 withscore --返回有序集合指定区间0-7内的成员,通过索引,分数从高到低

3.展示近3日的排行榜前八名

zrevrange hot:20191024-hot:20191026 0 7 withscore。

还有其他命令的应用可自行查询~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值