Redis中的五大基础类型是什么

58次阅读
没有评论

共计 3380 个字符,预计需要花费 9 分钟才能阅读完成。

这篇“Redis 中的五大基础类型是什么”文章的知识点大部分人都不太理解,所以丸趣 TV 小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Redis 中的五大基础类型是什么”文章吧。

redis 传统 5 大数据类型的运用

redis 传统 5 大数据类型的落地应用

Redis 介绍:

Redis 是一个开源(BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如 字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)] 与范围查询,bitmaps,hyperloglogs 和 地理空间(geospatial)索引半径查询。Redis 内置了 复制(replication),LUA 脚本(Lua scripting),LRU 驱动事件(LRU eviction),事务(transactions)和不同级别的 磁盘持久化(persistence),并通过 Redis 哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

备注:redis 命令不区分大小写,而 key 是区分大小写的

查询命令帮助:

help @类型名词

示例:

string 字符串类型

最常用

set key vuue

getkey

同时设置 / 获取多个键值

MSET key value [key value …]

MGET key [key ,,,]

数值增减

递增数字 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 命令生成

是否喜欢文章点赞

阅读数:只要点击了 rest 地址,直接使用 incr key 命令增加一个数字 1,完成记录数字。

命令实践

hash 哈希类型

和 Java 数据结构映射

Map Stirng, Map Object, Object

一次设置一个字段值

HSET key field value

一次获取一个字段值

HGET key field

一次设置多个字段值

HMSET key field value [fild value …]

一次获取多个字段值

HMGET key field [field …]

获取所有字段值

hgetall key

获取某个 key 内的全部数量

hlen

删除一个 key

hdel

命令演示

应用场景

购物车的早期,当前中小厂可以使用

新增商品 — hset shopcar:uid1024 334488 1

新增商品 — hset shopcar:uid2014 334477 1

增加商品数量 — hincrby shopcar:uid1024 334477 1

商品总数 — hlen shopcar:uid1024

全部选择 — hgetall shopcar:uid1024

list 列表类型

向列表左边添加元素

lpush key value [value …]

向列表右边添加元素

rpush key value [value …]

查看列表

lrange key start stop

获取列表中元素的个数

llen key

命令使用

应用场景

微信文章订阅公众号

1、【xx 宝】和【xx 报】发布了文章分别是 11 和 22

2、作者关注了他们两个,只要他们发布了新的文章,就会推送到我的 list

lpush likearticle: uid1024 11 22

3、查看作者自己的订阅号的全部文章,类似分页,下面 0-10 就是 一次显示 10 条 lrange likearticle:uid1024 0 10

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 共同拥有的元素

simter key [key …]

集合的并集运算 A v B

属于 A 或者属于 B 的元素合并后的集合

sunion key [key …]

运用场景

微信抽奖小程序

1、用户 id,立即参与,sadd key 用户 id

2、显示已经有多少人参与了当前有 67231 人参与,scard key

3、抽奖(从 set 中任意选取 N 个中奖人)

srandmember key 2 随机抽奖 2 个人,元素不会删除

spop key 3 司机抽奖 3 个人,元素会删除

微信朋友圈点赞

Redis 中的五大基础类型是什么

1、新增点赞 ; sadd pub:msgid 点赞用户 id1 点赞用户 id2

2、取消点赞;srem pub:msgid 点赞用户 id

3、展示所有点过赞的用户 smembers pub:msgid

4、点赞用户数统计,就是常见的待点赞的红色数数字 scard pub:msgid

5、判断某个朋友是否对楼主点过赞,sismember pub:msgid 用户 id

微博好友关注社交关系

Redis 中的五大基础类型是什么

共同关注的人

sadd s1 1 2 3 4

sadd s2 2 3 6 8

sinter s1 s2

共同关注:我去某人的微博,马上获取和某人共同关注的人

我关注的人,也关注了他(大家爱好相同)

我关注了华为余承东,余承东也关注了张召动,我和余总有共同的爱好

sadd s1 1 2 3 4 5

sadd s2 3 4 5 6 7

sismember s1 3

sismember s2 3

QQ 内推可能认识的人

sadd s1 1 2 3 4 5

sadd s2 3 4 5 6 7

// 共同好友

sinter s1 s2

// 差集

sdiff s1 s2

sdiff s2 s1

zset 有序集合

常用命令

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

2、添加元素

ZADD key score member [score member …]

3、按照元素分数从小到达的顺序返回索引从 strat 到 stop 之间的所有元素

zrange key start stop [WITHSORES]

4、获取元素的分数

zscore key member [member …]

5、删除元素

zrem key member [member …]

6、获取指定分数范围的元素

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

7、增加某个元素的分数

zincrby key increment member

8、获取集合中元素的数量

zcard key

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

zcount key min max

10、按照排名范围删除元素

zremrangebyrank key start stop

11、获取元素的排名

从小到大 zrank key member

从大到小 zrevrank key member

应用场景

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 10001
求商品销量前 10 名 zrange goods:sellsort 0 10 withscores
Redis 中的五大基础类型是什么

2、抖音热搜

Redis 中的五大基础类型是什么

1、点击视频

ZINCRBY hotavi:20220203 1 八百

ZINCRBY hotavi:20220203 15 八百 2 花木兰

2、展示当日排行前 10 条

zrevrange hotavi:20220203 0 9 withscores

以上就是关于“Redis 中的五大基础类型是什么”这篇文章的内容,相信大家都有了一定的了解,希望丸趣 TV 小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计3380字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)