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}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)