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"
记得快乐
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!