Redis 学与思系列(3)

前言

上篇文章中简单的介绍和总结了一下字符串类型的key的相关操作命令以及其适用场景,今天接着上篇文章的内容讲解redis其他的数据类型的相关指令以及其对应的使用场景。

列表类型:

 列表用来存储有序的元素,(这里的有序指加入列表的顺序),redis 支持对列表2端进行插入和弹出,还可以获取指定范围,指定下标的元素。
复制代码

这里简单的介绍列表的几种操作指令:

命令:RPUSH key value [value ...]
 将一个或多个值 value 插入到列表 key 的表尾(最右边)。
 如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾.
 如果 key 不存在,一个空列表会被创建并执行 RPUSH 操作。
复制代码
应用场景:
异步队列:该指令可以和`LPOP` 指令结合起来构成异步队列. 当然与之对应的还有指令`LPUSH` 和`RPOP`。当然结合`BLPOP`等相关指令可以实现
带阻塞功能的异步队列.
复制代码
命令: LRANGE key start stop
 返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。
  下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
  你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
复制代码
应用场景:
 分页: 借助于lrange的功能,我们可以实现分页功能。
复制代码
集合类型
 集合类型一个重要的特点是集合中不允许有重复元素,当然集合中的元素是无序的(这里的顺序指的也是加入集合时元素的顺序)。
 集合提供了很多有用的指令,比如判断某个元素是否存在的`SISMEMBER` ,返回指的集合的基数(元素个数)`SCARD` ,以及多个集合取差集,并集等等相关指令。
复制代码
应用场景:
 统计和查找: 借助集合的去重特性以及SCARD,SISMEMBER 指令,可以考虑用集合来进行统计和查找功能。
 随机数:借助`SRANDMEMBER`和`spop` 指令返回集合中的随机数,比如年会抽奖的时候就可以用这个生成简单的随机数
复制代码

有序集合数据类型

 有序集合相比普通集合而言,这个有序体现在每个元素的score 上,这个有序和列表的有序是不一样的,列表强调的是元素添加时的顺序,有序集合是按照元素的score值进行排序的。有很多很有用的指令:如`ZRANGEBYSCORE`返回特定范围内的元素。
复制代码

适用场景:

   统计topN 的场景:
   简单限流:通过zremrangebyscore 移除特定的元素,以及ZCARD 统计元素的数量,构造一个简单的滑动窗口(比如10秒内),实现限流
复制代码

后记

本文只是简单的阐述了一下redis的部分 数据类型以及一些可用的场景,当然个人理解可能不一定完全正确。后面的文章中会结合其他的问题继续分享redis的其他特性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值