Redis List列表的详细介绍

Redis List列表的详细介绍

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)

一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

实例

redis 127.0.0.1:6379> LPUSH runoobkey redis
(integer) 1
redis 127.0.0.1:6379> LPUSH runoobkey mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH runoobkey mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE runoobkey 0 10

1) "mysql"
2) "mongodb"
3) "redis"

在以上实例中我们使用了 LPUSH 将三个值插入了名为 runoobkey 的列表当中。

Redis 列表命令

以下列出了列表相关的基本命令:

1  BLPOP key1 [key2 ] timeout
  移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

2  BRPOP key1 [key2 ] timeout
  移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

3  BRPOPLPUSH source destination timeout
  从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

4  LINDEX key index
  通过索引获取列表中的元素

5  LINSERT key BEFORE|AFTER pivot value
  在列表的元素前或者后插入元素

6  LLEN key
  获取列表长度

7  LPOP key
  移出并获取列表的第一个元素

8  LPUSH key value1 [value2]
  将一个或多个值插入到列表头部

9  LPUSHX key value
  将一个值插入到已存在的列表头部

10 LRANGE key start stop
  获取列表指定范围内的元素

11 LREM key count value
  移除列表元素

12 LSET key index value
  通过索引设置列表元素的值

13 LTRIM key start stop
  对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。

14 RPOP key
  移除并获取列表最后一个元素

15 RPOPLPUSH source destination
  移除列表的最后一个元素,并将该元素添加到另一个列表并返回

16 RPUSH key value1 [value2]
  在列表中添加一个或多个值

17 RPUSHX key value
  为已存在的列表添加值

以上就是Redis List列表详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • 详解redis数据结构之压缩列表

     详解redis数据结构之压缩列表 redis使用压缩列表作为列表键和哈希键的底层实现之一.当一个列表键只包含少量的列表项,并且每个列表项都是由小整数值或者是短字符串组成,那么redis就会使用压缩列表存储列表项:同理,当一个哈希表包含的键值对都是由小整数值或者是短字符串组成,并且存储的键值对数目不多时,redis也会使用压缩列表来存储哈希表.以下是压缩列表存储结构: zlbytes长度为4个字节,记录了整个压缩列表所占用的字节数 zltail长度为4个字节,记录了压缩列表起始位置到压缩列表尾节

  • Redis列表类型的常用命令小结

    列表类型介绍 列表类型也是一个我们很长要用到的一个类型.比如我们发博客,要用到博客列表.如果没有列表我们就只能遍历键来获取所有文章或一部分文章了,这个语法是keys,但是这个命令需要遍历数据库中的所有键,处于性能方面的考虑,在生产环境是不推荐使用的. 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加.删除.获取元素,或者某个片段.在redis中,实际上是使用双向链表的方式实现的,所以在列表两端添加删除元素的时间复杂度是O(1),获取的元素越接近两端,速度越快.但是通过索引访问元素

  • redis列表类型_动力节点Java学院整理

    据说60%的人使用redis看重的是redis中的list类型,那这个list有什么用呢???不用我说大家都明白,做队列使用呗,为什么用它呢,很简单呗,因为有了它我就不需要专门的MQ产品啦,比如说RabbitMQ,ActiveMQ等等...对吧. 一.实战 先我们还是看一下List列表给我们提供的方法. 这些方法还是稀里糊涂的有一些的,没关系,做队列使用的话,常用的也就四个:LPOP,LPUSH,RPOP,RPUSH,从这四个单词上面,你应该就明白这有点像数据结构中的"双端队列",对吧

  • Redis List列表的详细介绍

    Redis List列表的详细介绍 Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素). 实例 redis 127.0.0.1:6379> LPUSH runoobkey redis (integer) 1 redis 127.0.0.1:6379> LPUSH runoobkey mongodb (integer) 2 redis 127

  • 巧用Redis实现分布式锁详细介绍

    目录 前言 手写Redis分布式锁 Redisson lock() lock(long leaseTime, TimeUnit unit) tryLock(long waitTime, long leaseTime, TimeUnit unit) RedLock红锁 总结 前言 无论是synchronized还是Lock,都运行在线程级别上,必须运行在同一个JVM中.如果竞争资源的进程不在同一个JVM中时,这样线程锁就无法起到作用,必须使用分布式锁来控制多个进程对资源的访问. 分布式锁的实现一般

  • Java操作Redis详细介绍

    1. 简介 Redis 是一个开源(BSD许可)的,内存中的key-value存储系统,它可以用作数据库.缓存和消息中间件. 2. 对key的操作 首先要建立连接Jedis jedis = new Jedis("127.0.0.1", 6379),然后就可以对string,set,zset,hash进行操作了. //对key的测试 public void keyTest() { System.out.println(jedis.flushDB()); //清空数据 System.out

  • 关于Redis数据库入门详细介绍

    目录 1.Redis是什么? 2.Redis特点: 单线程为何如此快? 3.redis 对比 memcached 4.redis 典型应用场景: 5.Redis下载与安装: Redis服务控制: Redis 命令工具: redis-benchmark 测试工具 redis-cli 命令行工具: 1.Redis是什么? 非关系型数据库:NoMsql 主流的 NoSQL 数据库有Redis. MongBD. Hbase. Memcached 等. Redis译为"远程字典服务",它是一款基

  • Redis中有序集合的内部实现方式的详细介绍

    目录 有序集合的内部实现 以压缩列表作为内部实现 以跳跃表作为内部实现 内部实现的转换 总结 面试官:Redis中基本的数据类型有哪些? 我:Redis的基本数据类型有:字符串(string).哈希(hash).列表(list).集合(set).有序集合(zset). 面试官:有序集合的内部实现方式是什么? 我还沉浸在上一个问题的沾沾自喜中,顿时表情凝固了,手心开始冒出冷汗.“这个..没有太深入了解”,我支支吾吾的说到. 面试官:回去等消息吧. 这句话说的干净利落,然后就没有然后了.失败是成功的

  • Redis 事务与过期时间详细介绍

    Redis 事务与过期时间详细介绍 一.Redis事务: Redis中支持事务,事务即为当我们需要执行几条命令时,要么这几条命令都不执行,要么都执行: 1.开始事务写入: multi 2.然后写入命令,注意写完事务要执行的每条命令之后回车即可,命令会自动入队: lpush art:1 hello lpush art:1 nihao 3.执行事务: exec Redis则会保证事务中的所有命令要么都执行,要么都不执行. 二.Redis过期时间: 实际开发中经常会遇到一些有时效性的数据,比如缓存,过

  • Redis分布式锁详细介绍

    目录 分布式锁 redis实现分布式锁的原理 死锁问题 超时问题 锁误放问题 可重入性 Redlock 分布式锁 在单进程应用中,当一段代码同一时间内只能由一个线程执行时, 多线程下可能会出错,例如两个线程同时对一个数字做累加,两个线程同时拿到了该数字,例如40,一个线程加了10,一个线程加了20,正确结果应该是70, 但由于两个线程在自己的内存中一个算出的是50,一个算出的是60,此时二者都将自己的结果往该数字原本的地方写(保存), 这时候,肯定会有一个线程的值会被覆盖,因为读取->计算->

  • 搭建Redis服务器步骤详细介绍

    目录 安装Redis  配置redis.config 测试登录 可视化redis软件 redis命令行中文乱码 安装Redis 我的安装包在 tar -zxvf redis-6.2.6.tar.gz 如果-zxvf不行就-xvf 解压后 cd redis-6.2.6 页面如下   再执行 make && make install 结束后,再把redis-6.2.6目录里面的redis.config拷贝到/use/local/bin/redis.config cp /opt/redis-6.

  • Redis并发访问问题详细讲解

    目录 前言 什么场景需要控制并发访问 并发访问的控制方法 1.加入锁机制 2.操作原子化 小结 前言 我们在使用Redis的过程中,难免会遇到并发访问及数据更新的问题.但很多场景对数据的并发修改是很敏感的,比如库存数据如果没有做好并发读取和更新的版本控制,就会导致严重的业务问题.今天就来说说应该如何做好并发访问及数据更新问题. 什么场景需要控制并发访问 需要控制并发访问,说明这些并发的访问可能会对其他的访问造成影响.比如上面提到的库存问题,若同一时期有多个客户端访问商品A的库存数据,并且可能要更

  • Golang分布式锁详细介绍

    目录 进程内加锁 trylock 基于redis的setnx 基于zk 基于etcd redlock 如何选择 在单机程序并发或并行修改全局变量时,需要对修改行为加锁以创造临界区.为什么需要加锁呢?可以看看下段代码: package main import ( "sync" ) // 全局变量 var counter int func main() { var wg sync.WaitGroup for i := 0; i < 1000; i++ { wg.Add(1) go f

随机推荐