Redis 之List类型操作

lpush

在 key 对应 list 的头部添加字符串元素。

lpush myList "hello"
lpush myList "world"
lrange myList 0 -1

在此处我们先插入了一个 hello,然后在 hello的头部插入了一个 world。其中 lrange 是用于取 myList 的内容。

rpush

在 key 对应 list 的尾部添加字符串元素 。

rpush myList2 "hello"
rpush myList2 "world"
lrange myList2 0 -1

在此处我们先插入了一个 hello,然后在 hello 的尾部插入了一个 world。

linsert

在 key 对应 list 的特定位置之前或之后添加字符串元素 。

rpush myList3 "hello"
rpush myList3 "world"
linsert myList3 before "world" "there"
lrange myList3 0 -1

在此处我们先插入了一个 hello,然后在 hello 的尾部插入了一个 world,然后又在 world 的前面插入了 there。

lset

设置 list 中指定下标的元素值(下标从 0 开始) 。

rpush myList4 "one"
rpush myList4 "two"
rpush myList4 "three"
lset myList4 0 "four"
lset myList4 -2 "five"
lrange myList4 0 -1

在此处我们依次插入了 one,two,three,然后将标是 0 的值设置为 four,再将下标是-2 的值设置为 five。

lrem

从 key 对应 list 中删除 count 个和 value 相同的元素。
count>0 时,按从头到尾的顺序删除,具体如下:

rpush myList5 "hello"
rpush myList5 "hello"
rpush myList5 "haha"
rpush myList5 "hello"
lrem myList5 2 "hello"
lrange myList5 0 -1

count<0 时,按从尾到头的顺序删除,具体如下:

rpush myList6 "hello"
rpush myList6 "hello"
rpush myList6 "haha"
rpush myList6 "hello"
lrem myList6 -2 "hello"
lrange myList6 0 -1

count=0 时,删除全部,具体如下:

rpush myList7 "hello"
rpush myList7 "hello"
rpush myList7 "haha"
rpush myList7 "hello"
lrem myList7 0 "hello"
lrange myList7 0 -1
ltrim

保留指定 key 的值范围内的数据。

rpush myList8 "one"
rpush myList8 "two"
rpush myList8 "three"
rpush myList8 "four"
ltrim myList8 1 -1
lrange myList8 0 -1
lpop

从 list 的头部删除元素,并返回删除元素。

lrange myList1 0 -1
lpop myList1
lrange myList1 0 -1
rpop

从 list 的尾部删除元素,并返回删除元素 。

lrange myList2 0 -1
rpop myList2
lrange myList2 0 -1
rpoplpush

从第一个 list 的尾部移除元素并添加到第二个 list 的头部,最后返回被移除的元素值,整个操 作是原子的.如果第一个 list 是空或者不存在返回 nil 。

lrange myList6 0 -1
lrange myList8 0 -1
rpoplpush myList6 myList8
lrange myList6 0 -1
lrange myList8 0 -1
lindex

返回名称为 key 的 list 中 index 位置的元素 。

lrange myList4 0 -1
lindex myList4 0
lindex myList4 1
lindex myList4 2
llen

返回 key 对应 list 的长度 。

llen myList8
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • redis是一个以key-value存储的非关系型数据库。有五种数据类型,string、hashes、list、s...
    林ze宏阅读 1,024评论 0 0
  • Redis 的 list 类型其实就是一个每个子元素都是 string 类型的双向链表。主要功能是 push、po...
    鬭闢阅读 325评论 0 0
  • 选择数据库:select 0-15 #一共16个数据库keys * 查看当前库中所有key值type 键 查...
    胖虎很可爱阅读 291评论 0 0
  • 1 Redis介绍1.1 什么是NoSql为了解决高并发、高可扩展、高可用、大数据存储问题而产生的数据库解决方...
    克鲁德李阅读 5,374评论 0 36
  • 1.Redis的list类型其实就是一个每个子元素都是string类型的双向链表。链表的最大长度是(2的32次方)...
    寻Sweet阅读 260评论 0 0