Redis的应用场景

1、String操作

(1)计数器 
incr artcle:readconunt:{文章id}
get artcle:readconunt:{文章id}

2、Hash操作

1、对象缓存
hmset  user  1:name  lisi  1:password  123456
hmget  user  1:name  1:password
2、电商购物车
(1)以用户ID作为key  1001
(2)商品ID作为field   10088
(3)商品数量value     1
添加商品=hset  cart:1001  10088 1
增加商品=hincrby cart:1001  10088 1
商品总数=hlen cart:1001
删除商品=hdel cart:1001  10088
获取购物车的所有商品=hgetall  cart:1001
优点:
(1)同类数据归类整合存储,方便数据管理
(2)相比String操作消耗内存与cpu更小
(3)相比String更节省空间
缺点:
(1)同类数过期功能不能使用在field上,只能用在key上
(2)Redis集群架构不适合大规模使用

List操作

1、微博消息
1001用户关注了java架构栈(2002)、java从入门到精通(2003)
Java架构栈发微博,消息id为10018
lpush  msg:1001  10018
Java从入门到精通,消息id为20018
lpush  msg:1001  20018
查看最新微博消息 下标从0到5  共6条
lrange  msg:1001  0 5

Set操作

1、抽奖
(1)点击参与守将加入集合 用户id=1888-1893
sadd  key  1888
(2)查看当前所有参与抽奖的用户
smembers  key
(3)抽取count名中奖者
srandmember  key  count 不会删除集合中的元素
spop key count 删除集合中的元素
2、微信点赞 收藏 标签
(1)点赞
sadd  like:{消息ID}  {用户ID}
(2)取消点赞
srem  like:{消息ID}  {用户ID}
(3)检查用户是否点赞过
sismember  like:{消息id}  {用户ID}
(4)获取点赞用户列表
smembers  like:{消息id} 
(5)获取点赞用户数量
scard  like:{消息ID}
3、集合操作实现微信微博关注模型
集合操作 set1={a,b,c}  set2={b,c,c}   set3={c,d,e}
sinter  set1 set2 set3  ->  {a}  交集
sunion  set1 set2 set3  ->  {a,b,c,d,e} 并集
sdiff  set1 set2 set3  -> {a}   差集
(1)刘备关注的人:
liubeiSet -> {guanyu,zhangfei,zhaoyun,zhugeliang}
(2)曹操关注的人:
caocaoSet -> {guanyu,zhaoyun,guojia}
(3)孙权关注的人:
sunquanSet -> {zhaoyun,zhouyu,zhugeliang}
(4)刘备和曹操的共同关注
sinter liubeiSet caocaoSet ->{guanyu,zhaoyun}
(5)刘备关注的孙权是否也关注了(zhaoyun,zhugeliang)
sismember sunquanSet zhaoyun
(6)刘备可能认识的人
sdiff  caocaoSet  liubeiSet ->{guojia}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值