温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

redis常用的数据结构及使用场景

发布时间:2021-09-13 23:30:31 来源:亿速云 阅读:125 作者:chen 栏目:编程语言

本篇内容主要讲解“redis常用的数据结构及使用场景”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“redis常用的数据结构及使用场景”吧!

官网命令大全网址:http://www.redis.cn/commands.html

1、命令不区分大小写,而key是区分大小写

2、帮助命令: help @类型名词,如:help @list

redis常用的数据结构及使用场景

一、九大数据结构

清空所有key(慎用)

flush all

redis常用的数据结构及使用场景

1、String(字符类型)

① 常用:

set key value
get key

redis常用的数据结构及使用场景

② 同时设置/获取多个键值

MSET key value [key value ....]
MGET key [key ....]

redis常用的数据结构及使用场景

注:m:more

③ 递增/递减指定步长

递增1/递减1:

INCR key
DECR key

redis常用的数据结构及使用场景

递增/递减指定步长:

INCRBY key increment
DECRBY key decrement

redis常用的数据结构及使用场景

④ 获取字符串长度

STRLEN key

redis常用的数据结构及使用场景

⑤ 分布式锁

setnx key value---不存在才创建
set key value [Ex seconds][PX milliseconds][NX|XX]---以保留指定时间单位进行创建

redis常用的数据结构及使用场景

⑥ 使用场景

商品编号、订单号采用INCR命令生成

是否喜欢的文章

2、Hash(散列类型)

类似java中数据类型:Map<String,Map<Object,object>>

① 一次设置一个字段值/一次获取一个字段值

HSET key field value
HGET key field

redis常用的数据结构及使用场景

② 一次设置多个字段值/一次获取多个字段值

HMSET key field value [field value ...]
HMGET key field [field ....]

redis常用的数据结构及使用场景

③ 获取所有字段值

hgetall key

redis常用的数据结构及使用场景

④ 获取某个key内的全部数量

hlen key

redis常用的数据结构及使用场景

⑤ 删除一个key

hdel key field

redis常用的数据结构及使用场景

⑥ 应用场景 购物车早期,当前小中厂可用

hmset cart:001 product001 1 product003 5 sumprice 500.0RMB
hgetall cart:001

redis常用的数据结构及使用场景

临时决定增加3份商品product001的数量:

hincrby cart:001 product001 3

redis常用的数据结构及使用场景

3、List(列表类型)

list数据结构是一个双端链表

① 向列表左边添加元素

LPUSH key value [value ...]

redis常用的数据结构及使用场景

② 向列表右边添加元素

RPUSH key value [value ....]

redis常用的数据结构及使用场景

③ 查看列表

LRANGE key start stop

redis常用的数据结构及使用场景

④ 获取列表中元素的个数

LLEN key

redis常用的数据结构及使用场景

⑤ 应用场景

微信文章订阅公众号

redis常用的数据结构及使用场景

4、Set(集合类型)

注:集合中元素不重复

① 添加元素

SADD key member[member ...]

redis常用的数据结构及使用场景

② 删除元素

SREM key member [member ...]

redis常用的数据结构及使用场景

③ 获取集合中的所有元素

SMEMBERS key

④ 判断元素是否在集合中

SISMEMBER key member

redis常用的数据结构及使用场景

⑤ 获取集合中的元素个数

SCARD key

redis常用的数据结构及使用场景

⑥ 从集合中随机弹出一个元素,元素不删除

SRANDMEMBER key [数字]

redis常用的数据结构及使用场景

⑦ 从集合中随机弹出一个元素,出一个删一个

SPOP key[数字]

redis常用的数据结构及使用场景

⑧ 集合的差集运算A-B:属于A但不属于B的元素构成的集合

SDIFF key [key ...]

redis常用的数据结构及使用场景

⑨ 集合的交集运算A∩B:属于A同时也属于B的共同拥有的元素构成的集合

SINTER key [key ...]

redis常用的数据结构及使用场景

⑩ 集合的并集运算AUB:属于A或者属于B的元素合并后的集合

SUNION key [key ...]

redis常用的数据结构及使用场景

应用场景:

① 微信抽奖小程序

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 user003
sadd user:003 user005 user009 user002

--共同关注的人
sinter user:001 user003

--我关注的人也关注了他
smembers user001
smembers user003

redis常用的数据结构及使用场景

redis常用的数据结构及使用场景

④ QQ内推可能认识的人

取差集

sdiff user:001 user:003

redis常用的数据结构及使用场景

5、SortedSet(有序集合类型,简称zset)

向有序集合中加入一个元素和该元素的分数

① 添加元素

ZADD key score member [score member ...]

② 按照元素分数从小到大的顺序 返回索引从start到stop之间的所有元素

ZRANGE key start stop [WITHSCORES]

redis常用的数据结构及使用场景

③ 获取元素的分数

 ZSCORE key member

redis常用的数据结构及使用场景

④ 删除元素

ZREM key member [member ...]

redis常用的数据结构及使用场景

⑤ 获取指定分数范围的元素

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

redis常用的数据结构及使用场景

⑥增加某个元素的分数

ZINCRBY key increment member

redis常用的数据结构及使用场景

⑦ 获取集合中元素的数量

ZCARD key

redis常用的数据结构及使用场景

⑧ 获得指定分数范围内的元素个数

ZCOUNT key min max

redis常用的数据结构及使用场景

⑨ 按照排名范围删除元素

ZREMRANGEBYRANK key start stop

⑩ 获取元素的排名

1、从小到大

ZRANK key member

redis常用的数据结构及使用场景

2、从大到小

ZREVRANK key member

redis常用的数据结构及使用场景

应用场景:

1、根据商品销售对商品进行排序显示

思路:定义商品销售排行榜(sorted set集合),key为goods:sellsort,分数为商品销售数量。

商品编号1001的销量是9,商品编号1002的销量是15
zadd goods:sellsort 9 1001 15 1002
有一个客户又买了2件商品1001,商品编号1001销量加2
zincrby goods:sellsort 2 1001
求商品销量前10名ZRANGE goods:sellsort 0 9 withscores

redis常用的数据结构及使用场景

到此,相信大家对“redis常用的数据结构及使用场景”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI