1、单值缓存:set key value
get key
2、对象缓存
id | name | nums |
1 | liming | 102 |
2 | lihua | 89 |
3 | zhangsan | 90 |
4 | gouji | 107 |
mset user:1:name zhangsan user:1:num 90
mget user:1:name user:1:num
3、分布式锁,对同一个数据进行操作
setnx product:1001 true //返回1说明加锁成功,可以进行后续操作
//返回0,加锁失败
del product:1001 //操作完成后释放锁
为了防止死锁可以加上时间限制
expire product:1001 second;
4、计数器
场景:统计某篇文章的阅读量
incr article:readcount:{文章id} //每有一个点击,就执行一次incr
应用场景,购物车
以用户id为key
商品id为filed
商品数量为value
1)添加商品 hset user:1 1000 1
2)增加数量 hincrby user:1 1000 1
3)商品总数 hlen user:1
4)删除商品 hdel user:1 1000
5)获取购物车所有商品 hgetall user:1
应用场景:公众号的消息流
kitty001关注了Jenny和LiMing两个公众号,当Jenny发了一篇id为1234的文章时
lpush msg:kitty001 1234
接着LiMing也发了一篇文章id为9527的文章
lpush msg:kitty001 9527
查看微信公众号最新消息
lrange msg:kitty001 0 -1
应用场景:抽奖小程序
参与抽奖:sadd choujiang zhangsan lisi wangwu kitty tx liu liming
开奖 : srandmember choujiang 2 //这两个人任然在集合中 ;spop choujiang 2 这两人不在集合
127.0.0.1:6379> SADD choujiang zs lm jy dy ls wu hh li tx ki (integer) 10 127.0.0.1:6379> SMEMBERS choujiang 1) "ls" 2) "hh" 3) "jy" 4) "wu" 5) "dy" 6) "li" 7) "zs" 8) "lm" 9) "tx" 10) "ki" 127.0.0.1:6379> SRANDMEMBER choujiang 2 1) "wu" 2) "jy" 127.0.0.1:6379> SMEMBERS choujiang 1) "wu" 2) "dy" 3) "li" 4) "zs" 5) "ls" 6) "jy" 7) "lm" 8) "hh" 9) "tx" 10) "ki"
应用场景:微信点赞
sadd like:{消息id} {用户id}
sadd like:{1011} tx01 //有人点赞
srem like:{1011} tx02 //取消点赞
应用场景:共同好友
sadd key1 zhangsan lisi wangwu liuhuan liming
sadd key2 zhangsan jenny liming ll
sinter key1 key2
使用场景:排行榜
某天新闻
zadd news:20200321 1 "守护香港"
zadd news:20200321 1 "你好,世界"
每有一次点击,这个key所对应的分数加一
zincrby news:20200321 1 "守护香港"
展示某天的阅读量前十的新闻
zrevrange news:20200321 0 9
原文:https://www.cnblogs.com/xiaoxiaolinux/p/14698855.html