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

网友投稿 323 2023-11-27

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

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

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

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

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 个人, 元素会删除

微信朋友圈点赞

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

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

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

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

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

微博好友关注社交关系

共同关注的人

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

2、 抖音热搜

1、点击视频

ZINCRBY hotavi:20220203 1 八百

ZINCRBY hotavi:20220203 15 八百 2 花木兰

2、展示当日排行前 10 条

zrevrange hotavi:20220203 0 9 withscores

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数据库数据库管理数据库查询生成器控件Active Query Builder
下一篇:大变局:中国数据库市场拐点已来
相关文章

 发表评论

暂时没有评论,来抢沙发吧~