• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Y-wee
博客园    首页    新随笔    联系   管理     

redis中list列表类型常用命令

redis中list列表类型常用命令

单键多值

Redis 列表是简单的字符串列表,按照插入顺序排序,你可以添加一个元素到列表的头部(左边)或者尾部(右边)

它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差

下面介绍一些List类型的常用命令

  • 从指定key对应List左边插入值:lpush key value1 value2 value3......,eg:
127.0.0.1:6379> lpush key1 k1v1 k1v2 k1v3
(integer) 3
  • 从指定key对应List左边开始获取指定范围的value:lrange key 起始位置 结束位置(-1表示末尾),eg:
127.0.0.1:6379> lrange key1 0 -1
1) "k1v3"
2) "k1v2"
3) "k1v1"
127.0.0.1:6379> lrange key1 0 1
1) "k1v3"
2) "k1v2"
  • 从指定key对应List右边插入值:rpush key value1 value2 value3......,eg:
127.0.0.1:6379> rpush key2 k2v1 k2v2 k2v3
(integer) 3
127.0.0.1:6379> lrange key2 0 -1
1) "k2v1"
2) "k2v2"
3) "k2v3"
  • 从指定key对应List左边|右边移除一个值:lpop|rpop key,eg:
127.0.0.1:6379> lrange key1 0 -1
1) "k1v3"
2) "k1v2"
3) "k1v1"
127.0.0.1:6379> lpop key1
"k1v3"
127.0.0.1:6379> lrange key1 0 -1
1) "k1v2"
2) "k1v1"
127.0.0.1:6379> rpop key1
"k1v1"
127.0.0.1:6379> lrange key1 0 -1
1) "k1v2"
# 当List中值全部移除,对应key也没了
127.0.0.1:6379> lpop key1
"k1v2"
127.0.0.1:6379> keys *
1) "key2"
  • 将key1对应List从右边取出一个值插入到key2对应List左边:rpoplpush key1 key2
127.0.0.1:6379> lrange key1 0 -1
1) "k1v3"
2) "k1v2"
3) "k1v1"
127.0.0.1:6379> lrange key2 0 -1
1) "k2v1"
2) "k2v2"
3) "k2v3"
127.0.0.1:6379> rpoplpush key1 key2
"k1v1"
127.0.0.1:6379> lrange key1 0 -1
1) "k1v3"
2) "k1v2"
127.0.0.1:6379> lrange key2 0 -1
1) "k1v1"
2) "k2v1"
3) "k2v2"
4) "k2v3"
  • 获取key对应List中指定下标值:lindex key 下标,eg:
127.0.0.1:6379> lrange key2 0 -1
1) "k1v1"
2) "k2v1"
3) "k2v2"
4) "k2v3"
127.0.0.1:6379> lindex key2 0
"k1v1"
  • 获取key对应List的长度:llen key,eg:
127.0.0.1:6379> lrange key2 0 -1
1) "k1v1"
2) "k2v1"
3) "k2v2"
4) "k2v3"
127.0.0.1:6379> llen key2
(integer) 4
  • 从指定key对应List左边移除n个value:lrem key n value,eg:
127.0.0.1:6379> lrange key2 0 -1
1) "k1v1"
2) "k2v1"
3) "k2v2"
4) "k2v3"
127.0.0.1:6379> lrem key2 1 k1v1
(integer) 1
127.0.0.1:6379> lrange key2 0 -1
1) "k2v1"
2) "k2v2"
3) "k2v3"
  • 从指定key对应List左边截取指定位置value:ltrim key 起始位置 结束位置,eg:
127.0.0.1:6379> lrange key2 0 -1
1) "k2v1"
2) "k2v2"
3) "k2v3"
127.0.0.1:6379> ltrim key2 0 1
OK
127.0.0.1:6379> lrange key2 0 -1
1) "k2v1"
2) "k2v2"
  • 将指定key对应List指定下标的value替换成新的value:lset key 下标 value,eg:
127.0.0.1:6379> lrange key2 0 -1
1) "k2v1"
2) "k2v2"
127.0.0.1:6379> lset key2 0 k2v1-new
OK
127.0.0.1:6379> lrange key2 0 -1
1) "k2v1-new"
2) "k2v2"
  • 在指定key对应List的指定value前面插入值:linsert|rinsert key before|after value value(后面的value是插入的值),eg:
127.0.0.1:6379> lrange key2 0 -1
1) "k2v1-new"
2) "k2v2"
127.0.0.1:6379> linsert key2 before k2v1-new k2v-insert
(integer) 3
127.0.0.1:6379> lrange key2 0 -1
1) "k2v-insert"
2) "k2v1-new"
3) "k2v2"
127.0.0.1:6379> linsert key2 after k2v1-new k2v-insert-after
(integer) 4
127.0.0.1:6379> lrange key2 0 -1
1) "k2v-insert"
2) "k2v1-new"
3) "k2v-insert-after"
4) "k2v2"
记得快乐
posted @ 2021-03-20 14:52  Y-wee  阅读(92)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3