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的其他特性。


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

查看所有标签

猜你喜欢:

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

Reality Is Broken

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》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

随机密码生成器
随机密码生成器

多种字符组合密码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试