redis数据类型(四)list类型

一、list类型

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

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

  1. lpush key string   在key对应list的头部添加字符串元素,返回1表示成功,0表示key存在且不是list类型。
  2. rpush key string   在key对应list的尾部添加字符串元素,返回LIST容器最新的长度。
  3. llen key  返回key对应list的长度,如果key不存在返回0,如果key对应类型不是list 返回错误。
  4. lrange key start end  返回指定区间内的元素,下标从0开始,负值表示从后面计算,-1表示倒数第一个元素 ,key不存在返回空列表。
  5. ltrim key start end  截取list指定区间内元素,成功返回1,key不存在返回错误。

  6. lset key index value  设置list中指定下标的元素值,成功返回1,key或者下标不存在返回错误。
  7. lrem key count value  从 List 的头部(count正数)或尾部(count负数)删除一定数量(count)匹配value的元素,返回删除的元素数量。count为0时候删除全部。
  8. lpop key  从list的头部删除并返回删除元素。如果key对应list不存在或者是空返回nil,如果key对应值不是list返回错误。
  9. rpop key  从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。
  11. brpop key1 ...... keyN timeout  同blpop,一个是从头部删除一个是从尾部删除。
  12. lpushx key string  在key对应list的头部添加字符串元素,返回1表示成功,0表示key存在且不是list类型。
  13. rpushx key string   在key对应list的尾部添加字符串元素。
  14. lindex key index  根据索引值返回指定KEY LIST中的元素。0为第一个元素,1为第二个元素。-1为倒数第一个元素,-2为倒数第二个元素。如果指定了一个不存在的索引值,则返回FLASE。
  15. linsert  在指定LIST中的指定中枢VALUE的左侧或者右侧插入VALUE。如果这个LIST不存在,或者这个pivot(key position)不存在,那么这个VALUE不会被插入。
  16. rpoplpush  从源LIST的最后弹出一个元素,并且把这个元素从目标LIST的顶部(左侧)压入目标LIST。
  17. brpoplpush &emsop;从源LIST的最后弹出一个元素,并且把这个元素从目标LIST的顶部(左侧)压入目标LIST。
原文地址:https://www.cnblogs.com/jack1995/p/7507240.html