redis命令之哈希表类型rpoplpush命令用法详情

47 篇文章 0 订阅
45 篇文章 1 订阅

列表

RPOPLPUSH命令

命令:rpoplpush popKey  pushKey,一共分为两个顺序操作并且是原子性操作。第一步:将列表popKey进行rpop操作,移除popKey的表尾(右侧)元素,并将rpop的返回值(被移除的元素)作为命令的返回值。第二部:将上面rpop的元素通过lpush命令添加到pushKey的表头(左侧)。

特殊情况:

1.因为是原子性操作,所以当popKey不存在时,rpop将会不做任何操作,整个命令也就不会执行任何操作,返回nil

2.popKey和pushKey为同一个列表的情况,这时等于是把自身的表尾(右侧)元素移动到表头(左侧)。

#######################当popKey和pushKey不是同一个列表时########################
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> rpoplpush popKey pushKey  ##popKey和pushKey都不存在,返回nil
(nil)
127.0.0.1:6379> rpush pushKey 1 2 3 4 5
(integer) 5
127.0.0.1:6379> lrange pushKey 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:6379> rpoplpush popKey pushKey ##popKey不存在,pushKey存在时,也返回nil
(nil)
127.0.0.1:6379> rpush popKey 6 7 8 9 10  ##popKey和pushKey都存在时
(integer) 5
127.0.0.1:6379> lrange popKey 0 -1
1) "6"
2) "7"
3) "8"
4) "9"
5) "10"
127.0.0.1:6379> rpoplpush popKey pushKey  ##返回值为rpop操作的返回值
"10"
127.0.0.1:6379> lrange popKey 0 -1  ##popKey的表尾(右侧)元素被移除
1) "6"
2) "7"
3) "8"
4) "9"
127.0.0.1:6379> lrange pushKey 0 -1  ##被移除的元素追加到了pushKey的表头(左侧)
1) "10"
2) "1"
3) "2"
4) "3"
5) "4"
6) "5"



##################当popKey和pushKey是同一个列表时###################
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> rpush sameKey 1 2 3 4 5
(integer) 5
127.0.0.1:6379> lrange sameKey
(error) ERR wrong number of arguments for 'lrange' command
127.0.0.1:6379> lrange sameKey 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:6379> rpoplpush sameKey sameKey  ##表尾(右侧)被移除并返回
"5"
127.0.0.1:6379> lrange sameKey 0 -1   ##移除的元素被追加到表头(左侧)
1) "5"
2) "1"
3) "2"
4) "3"
5) "4"

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值