redis常用的数据结构及使用场景
本篇内容主要讲解"redis常用的数据结构及使用场景",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"redis常用的数据结构及使用场景"吧!
官网命令大全网址:http://www.redis.cn/commands.html
1、命令不区分大小写,而key是区分大小写
2、帮助命令: help @类型名词,如:help @list
一、九大数据结构
清空所有key(慎用)
flush all
1、String(字符类型)
① 常用:
set key valueget key
② 同时设置/获取多个键值
MSET key value [key value ....]MGET key [key ....]
注:m:more
③ 递增/递减指定步长
递增1/递减1:
INCR keyDECR key
递增/递减指定步长:
INCRBY key incrementDECRBY key decrement
④ 获取字符串长度
STRLEN key
⑤ 分布式锁
setnx key value---不存在才创建set key value [Ex seconds][PX milliseconds][NX|XX]---以保留指定时间单位进行创建
⑥ 使用场景
商品编号、订单号采用INCR命令生成
是否喜欢的文章
2、Hash(散列类型)
类似java中数据类型:Map
① 一次设置一个字段值/一次获取一个字段值
HSET key field valueHGET key field
② 一次设置多个字段值/一次获取多个字段值
HMSET key field value [field value ...]HMGET key field [field ....]
③ 获取所有字段值
hgetall key
④ 获取某个key内的全部数量
hlen key
⑤ 删除一个key
hdel key field
⑥ 应用场景 购物车早期,当前小中厂可用
hmset cart:001 product001 1 product003 5 sumprice 500.0RMBhgetall cart:001
临时决定增加3份商品product001的数量:
hincrby cart:001 product001 3
3、List(列表类型)
list数据结构是一个双端链表
① 向列表左边添加元素
LPUSH key value [value ...]
② 向列表右边添加元素
RPUSH key value [value ....]
③ 查看列表
LRANGE key start stop
④ 获取列表中元素的个数
LLEN key
⑤ 应用场景
微信文章订阅公众号
4、Set(集合类型)
注:集合中元素不重复
① 添加元素
SADD key member[member ...]
② 删除元素
SREM key member [member ...]
③ 获取集合中的所有元素
SMEMBERS key
④ 判断元素是否在集合中
SISMEMBER key member
⑤ 获取集合中的元素个数
SCARD key
⑥ 从集合中随机弹出一个元素,元素不删除
SRANDMEMBER key [数字]
⑦ 从集合中随机弹出一个元素,出一个删一个
SPOP key[数字]
⑧ 集合的差集运算A-B:属于A但不属于B的元素构成的集合
SDIFF key [key ...]
⑨ 集合的交集运算A∩B:属于A同时也属于B的共同拥有的元素构成的集合
SINTER key [key ...]
⑩ 集合的并集运算AUB:属于A或者属于B的元素合并后的集合
SUNION key [key ...]
应用场景:
① 微信抽奖小程序
1 用户ID,立即参与按钮sadd key 用户ID2 显示已经有多少人参与了,上图23208人参加SCARD key3 抽奖(从set中任意选取N个中奖人)sadd key user001 user002 ...SCARD key 多少人参与SRANDMEMBER key 2 随机抽奖2个人,元素不删除SPOP key 3 随机抽奖3个人,元素会删除
② 微信朋友圈点赞
sadd page:005 user001 user005 ...-------添加进点赞某文章集合srem page:005 user005 -------某用户取消点赞,从集合中移除
③ 微博好友关注社交关系
共同关注的人
sadd user:001 user004 user005 user003sadd user:003 user005 user009 user002--共同关注的人sinter user:001 user003--我关注的人也关注了他smembers user001smembers user003
④ QQ内推可能认识的人
取差集
sdiff user:001 user:003
5、SortedSet(有序集合类型,简称zset)
向有序集合中加入一个元素和该元素的分数
① 添加元素
ZADD key score member [score member ...]
② 按照元素分数从小到大的顺序 返回索引从start到stop之间的所有元素
ZRANGE key start stop [WITHSCORES]
③ 获取元素的分数
ZSCORE key member
④ 删除元素
ZREM key member [member ...]
⑤ 获取指定分数范围的元素
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
⑥增加某个元素的分数
ZINCRBY key increment member
⑦ 获取集合中元素的数量
ZCARD key
⑧ 获得指定分数范围内的元素个数
ZCOUNT key min max
⑨ 按照排名范围删除元素
ZREMRANGEBYRANK key start stop
⑩ 获取元素的排名
1、从小到大
ZRANK key member
2、从大到小
ZREVRANK key member
应用场景:
1、根据商品销售对商品进行排序显示
思路:定义商品销售排行榜(sorted set集合),key为goods:sellsort,分数为商品销售数量。商品编号1001的销量是9,商品编号1002的销量是15zadd goods:sellsort 9 1001 15 1002有一个客户又买了2件商品1001,商品编号1001销量加2zincrby goods:sellsort 2 1001求商品销量前10名ZRANGE goods:sellsort 0 9 withscores
到此,相信大家对"redis常用的数据结构及使用场景"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!