redis数据类型(四)list类型

时间:2023-03-10 02:06:21
redis数据类型(四)list类型

一、list类型

list是一个链表结构,可以理解为一个每个子元素都是 string 类型的双向链表。
主要功能是push、pop、获取一个范围的所有值等。
操作中key理解为链表的名字。

二、List类型数据操作指令简介

  1. lpush key string   在key对应list的头部添加字符串元素,返回1表示成功,0表示key存在且不是list类型。
    redis数据类型(四)list类型
  2. rpush key string   在key对应list的尾部添加字符串元素,返回LIST容器最新的长度。
    redis数据类型(四)list类型
  3. llen key  返回key对应list的长度,如果key不存在返回0,如果key对应类型不是list 返回错误。
    redis数据类型(四)list类型
  4. lrange key start end  返回指定区间内的元素,下标从0开始,负值表示从后面计算,-1表示倒数第一个元素 ,key不存在返回空列表。
    redis数据类型(四)list类型
  5. ltrim key start end  截取list指定区间内元素,成功返回1,key不存在返回错误。
    redis数据类型(四)list类型
    redis数据类型(四)list类型
  6. lset key index value  设置list中指定下标的元素值,成功返回1,key或者下标不存在返回错误。
    redis数据类型(四)list类型
  7. lrem key count value  从 List 的头部(count正数)或尾部(count负数)删除一定数量(count)匹配value的元素,返回删除的元素数量。count为0时候删除全部。
    redis数据类型(四)list类型
  8. lpop key  从list的头部删除并返回删除元素。如果key对应list不存在或者是空返回nil,如果key对应值不是list返回错误。
    redis数据类型(四)list类型
  9. rpop key  从list的尾部删除并返回删除元素。
    redis数据类型(四)list类型
  10. blpop key1 ...... keyN timeout  从左到右扫描,返回对第一个非空list进行lpop操作并返回,比如blpop list1 list2 list3 0 ,如果list不存在list2,list3都是非空则对list2做 lpop并返回从list2中删除的元素。如果所有的list都是空或不存在,则会阻塞timeout 秒,timeout为0表示一直阻塞。当阻塞时,如果有client对key1...keyN中的任意key 进行push操作,则第一在这个key上被阻塞的client会立即返回。如果超时发生,则返回 nil。有点像unix的select或者poll。
    redis数据类型(四)list类型
  11. brpop key1 ...... keyN timeout  同blpop,一个是从头部删除一个是从尾部删除。
    redis数据类型(四)list类型
  12. lpushx key string  在key对应list的头部添加字符串元素,返回1表示成功,0表示key存在且不是list类型。
    redis数据类型(四)list类型
  13. rpushx key string   在key对应list的尾部添加字符串元素。
    redis数据类型(四)list类型
  14. lindex key index  根据索引值返回指定KEY LIST中的元素。0为第一个元素,1为第二个元素。-1为倒数第一个元素,-2为倒数第二个元素。如果指定了一个不存在的索引值,则返回FLASE。
    redis数据类型(四)list类型
  15. linsert  在指定LIST中的指定中枢VALUE的左侧或者右侧插入VALUE。如果这个LIST不存在,或者这个pivot(key position)不存在,那么这个VALUE不会被插入。
    redis数据类型(四)list类型
  16. rpoplpush  从源LIST的最后弹出一个元素,并且把这个元素从目标LIST的顶部(左侧)压入目标LIST。
    redis数据类型(四)list类型
  17. brpoplpush &emsop;从源LIST的最后弹出一个元素,并且把这个元素从目标LIST的顶部(左侧)压入目标LIST。
    redis数据类型(四)list类型