原创文章,转载请注明原文章地址,谢谢!
Redis的命令网址:http://www.redis.cn/commands.html
redis的8大类型
- string(字符串)
- hash(散列)
- list(列表)
- set(集合)
- zset(有序集合,sorted set)
- bitmap(位图)
- hyperloglog(统计)
- geo(地理)
注:命令不区分大小写,而key区分大小写。类型详情可使用help @类型名称查看。
string
常用命令
设置key和value:set key value
获取key对应的value值:get key
同时设置多个键值:mset key1 value1 key2 value2
同时获取多个值:mget key1 key2
递增数值:incr key
增加指定整数:incrby key increment
递减数值:decr key
减少指定整数:decrby key decrement
获取字符串长度:strlen key
分布式锁:setnx key value / set key value [Ex seconds][PX milliseconds][NX|XX]
- EX:key在多少秒之后过期
- PX:key在多少毫秒之后过期
- NX:当key不存在的时候,才创建key,效果等同于setnx
- XX:当key存在的时候,覆盖key
应用场景
-
商品编号、订单号可以采用incr命令生成。
-
文章的阅读数、评论数,只要打开了文章或者评论文章,直接可以用incr命令将阅读数增加1。
hash
redis中的hash对应Java中的哪种数据类型?
Map<String,Map<Object,object>>
常用命令
一次设置一个字段值:hset key field value
一次获取一个字段值:hget key field
一次设置多个字段值:hmset key field1 value1 field2 value2
一次获取多个字段值:hmget key field1 field2
获取所有字段值:hgetall key
获取某个key内的全部数量:hlen
删除一个key:hdel
应用场景
-
简单版的购物车
新增商品:hset shopcar:uid001 123456 1
增加商品数量:hincrby shopcar:uid001 123456 1
商品总数:hlen shopcar:uid001
全部选择:hgetall shopcar:uid001
list
常用命令
向列表左边添加元素:lpush key value1 value2
向列表右边添加元素:rpush key value1 value2
查看列表:lrange key start stop
获取列表中元素个数:llen key
应用场景
-
微信文章订阅公众号
李永乐老师发布了文章的id是11,我关注了李永乐老师的公众号,只要发布了新文章,就会推送至我的list中,lpush article:myId 11 001
查看我订阅的全部公众号订阅的文章,类似于分页,如展示前10条,lrange article:myId 0 10
set
常用命令
添加元素:sadd key member1 member2
删除元素:srem key member1 member2
获取集合中的所有元素:smembers key
判断元素是否在集合中:sismember key member
获取集合中的元素个数:scard key
从集合中随机弹出一个元素,元素不删除:srandmember key [数字]
从集合中随机弹出一个元素,出一个删一个:spop key [数字]
集合的差集运算A-B,属于A但不属于B的元素构成的集合:sdiff key1 key2
集合的交集运算A∩B,属于A同时也属于B的共同拥有的元素构成的集合:sinter key1 key2
集合的并集运算AUB,属于A或者属于B的元素合并后的集合:sunion key1 key2
应用场景
-
微信抽奖小程序
用户id,立即参与按钮:sadd key uid
显示已经有多少人参与:scard key
抽奖(随机抽取2个人,元素不删除):srandmember key 2
抽奖(随机抽取2个人,元素删除):spop key 2 -
微信朋友圈点赞
新增点赞:sadd pub:msgId 点赞用户id1 点赞用户id2
取消点赞:srem pub:msgId 点赞用户id
展现所有点赞用户:smembers pub:msgId
点赞用户数统计:scard pub:msgId
判断某个用户是否对楼主点赞:sismember pub:msgId uid -
微博好友关注社交关系
-
QQ内推可能认识的人
zset
常用命令
向有序集合中加入一个元素和该元素的分数:zadd key score1 member1 score2 member2
按照元素分数从小到大的顺序,返回索引从start到stop之间的所有元素:zrange key start stop [withscores]
获取元素的分数: zcore key member
删除元素:zrem key member1 member2
获取指定分数范围的元素:zrangebyscore key min max [withscores] [limit offset count]
增加某个元素的分数:zincrby key increment member
获取集合中元素的数量:zcard key
获得指定分数范围内的元素个数:9zcount key min max
按照排名范围删除元素:zremrangebyrank key start stop
获取元素的排名(从小到大):zrank key member
获取元素的排名(从大到小):zrevrank key member
应用场景
-
根据商品销售对商品进行排序显示
定义商品销售排行榜(sorted set集合),key为goods:sellsort,分数为商品销售数量。
商品编号001的销量是9,商品编号002的销量是15:zadd goods:sellsort 9 001 15 002
用户又买了2件001商品,销量增加2:zincrby goods:sellsort 2 001
求商品销量前10名:zrange goods:sellsort 0 10 withscores -
抖音热搜
点击视频:zincrby hotvcr:20200919 1 八佰 / zincrby hotvcr:20200919 15 八佰 2 花木兰
展示当日排行榜前10条:zrevrange hotvcr:20200919 0 9 withscores
博客内容仅供自已学习以及学习过程的记录,如有侵权,请联系我删除,谢谢!
网友评论