Redis 学与思系列(3)

栏目: 数据库 · 发布时间: 5年前

内容简介:上篇文章中简单的介绍和总结了一下字符串类型的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的其他特性。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机程序设计艺术(第3卷 英文版·第2版)

计算机程序设计艺术(第3卷 英文版·第2版)

Donald E.Knuth / 人民邮电出版社 / 2010-10 / 119.00元

《计算机程序设计艺术》系列被公认为计算机科学领域的权威之作,深入阐述了程序设计理论,对计算机领域的发展有着极为深远的影响。本书是该系列的第3卷,扩展了第1卷中信息结构的内容,主要讲排序和查找。书中对排序和查找算法进行了详细的介绍,并对各种算法的效率做了大量的分析。 本书适合从事计算机科学、计算数学等各方面工作的人员阅读,也适合高等院校相关专业的师生作为教学参考书,对于想深入理解计算机算法的读......一起来看看 《计算机程序设计艺术(第3卷 英文版·第2版)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

html转js在线工具
html转js在线工具

html转js在线工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具