Redis_03数据类型二

数据类型二:List(列表)

在Redis中可以用List实现栈、队列、阻塞队列

lpush:向列表中插入值(左边,头部)

rpush:向列表中插入值(右边,尾部)

127.0.0.1:6379> lpush list one  # LPUSH	 将一个值或多个值,插入到列表头部(左)
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> lrange list 0 -1 # 获取list中的值
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> lrange list 0 1
1) "three"
2) "two"
127.0.0.1:6379> rpush list four  # 将一个值或多个值,插入到列表尾部(右)
1) "three"
2) "two"
3) "one"
4) "four"

lpop:移除列表中第一个元素

rpop:移除列表中最后一个元素

127.0.0.1:6379> lpop list  # 移除list的第一个元素
"three"
127.0.0.1:6379> rpop list # 移除list的最后一个元素
"four"

lindex:通过下标获取列表的值

llen:获取列表长度

127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> lindex list 0  # 通过下标获取list的值
1) "two"
127.0.0.1:6379> llen list # 获取列表长度
(integer) 2

lrem:移除列表中指定的值(个数),精确匹配

127.0.0.1:6379> lrem list 1 one # 移除指定个数的值,精确匹配
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "four"
3) "three"
4) "two"
127.0.0.1:6379> lrem list 2 three
(integer) 2
127.0.0.1:6379> 

ltrim:截取列表中指定长度的值

127.0.0.1:6379> rpush mylist 'hello'
(integer) 1
127.0.0.1:6379> rpush mylist 'hello1'
(integer) 2
127.0.0.1:6379> rpush mylist 'hello2'
(integer) 3
127.0.0.1:6379> rpush mylist 'hello3'
(integer) 4
127.0.0.1:6379> ltrim mylist 1 2  # 通过下标截取指定的长度,list已被改变,剩下截取的值
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "hello1"
2) "hello2"

rpoplpush:移除列表的最后一个元素,将他移动到新的列表中

127.0.0.1:6379> rpoplpush mylist newlist
"hello4"
127.0.0.1:6379> lrange mylist 0 -1 # 查看原列表元素
1) "hello"
2) "hello1"
3) "hello2"
4) "hello3"
127.0.0.1:6379> lrange newlist 0 -1 # 查看新列表元素
1) "hello4"

exists:判断列表是否存在

lset:更新列表中指定位置的值

127.0.0.1:6379> lset newlist 0 'axu'
OK

linsert:为列表指定值的前后插入值

127.0.0.1:6379> linsert newlist before 'axu' 'zhou' # 在指定值的前面插入
(integer) 2
127.0.0.1:6379> lrange newlist 0 -1
1) "zhou"
2) "axu"
127.0.0.1:6379> linsert newlist after 'axu' 'zzh' # 在指定值的后面插入
(integer) 3
127.0.0.1:6379> lrange newlist 0 -1
1) "zhou"
2) "axu"
3) "zzh"

总结:

  • 实际上是一个链表,before Node after、left、right都可以插入值
  • 如果key不存在,创建新的链表
  • 如果key存在,新增内容
  • 移除所有的值,则为空链表,也代表不存在!
  • 在两边插入或改动值,效率最高!中间元素,相对效率要低一点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值