成都创新互联网站制作重庆分公司

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

本篇内容主要讲解“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>

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

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常用的数据结构及使用场景”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


当前标题:redis常用的数据结构及使用场景
URL地址:http://cxhlcq.com/article/jjgooe.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部