内容简介:上篇文章中简单的介绍和总结了一下字符串类型的key的相关操作命令以及其适用场景,今天接着上篇文章的内容讲解redis其他的数据类型的相关指令以及其对应的使用场景。这里简单的介绍列表的几种操作指令:适用场景:
上篇文章中简单的介绍和总结了一下字符串类型的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的其他特性。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Reality Is Broken
Jane McGonigal / Penguin Press HC, The / 2011-1-20 / USD 26.95
Visionary game designer Jane McGonigal reveals how we can harness the power of games to solve real-world problems and boost global happiness. More than 174 million Americans are gamers, and......一起来看看 《Reality Is Broken》 这本书的介绍吧!