Redis list 之增删改查
一、增加
1、lpush [lpush key valus...] 类似于压栈操作,将元素放入头部
127.0.0.1:6379> lpush plist ch0 ch1 ch2 (integer) 3 127.0.0.1:6379> lrange plist 0 3 1) "ch2" 2) "ch1" 3) "ch0" 127.0.0.1:6379> lpush plist ch4 (integer) 4 127.0.0.1:6379> lrange plist 0 4 1) "ch4" 2) "ch2" 3) "ch1" 4) "ch0"
2 、lpushx [lpushx key valus]:只能插入已经存在的key,且一次只能插入一次
127.0.0.1:6379> lpushx pl ch (integer) 0 127.0.0.1:6379> lpushx plist ch5 ch6 (error) ERR wrong number of arguments for 'lpushx' command 127.0.0.1:6379> lpushx plist ch5 (integer) 5 127.0.0.1:6379> lrange plist 0 5 1) "ch5" 2) "ch4" 3) "ch2" 4) "ch1" 5) "ch0"
3、rpush [rpush key valus...] :将元素push在list的尾部
127.0.0.1:6379> rpush plist ch6 (integer) 6 127.0.0.1:6379> lrange plist 0 6 1) "ch5" 2) "ch4" 3) "ch2" 4) "ch1" 5) "ch0" 6) "ch6" 127.0.0.1:6379> rpush plist ch7 ch8 (integer) 8 127.0.0.1:6379> lrange plist 0 8 1) "ch5" 2) "ch4" 3) "ch2" 4) "ch1" 5) "ch0" 6) "ch6" 7) "ch7" 8) "ch8"
4、rpushx [rpushx key valus...] :相对于lpushx
5、linsert [linsert key before/after pivot value]:将值插入到pivot的前面或后面。返回列表元素个数。如果参照点pivot不存在不插入。如果有多个pivot,以离表头最近的为准
127.0.0.1:6379> linsert plist before ch1 chi (integer) 9 127.0.0.1:6379> lrange plist 0 9 1) "ch5" 2) "ch4" 3) "ch2" 4) "chi" 5) "ch1" 6) "ch0" 7) "ch6" 8) "ch7" 9) "ch8" 127.0.0.1:6379> linsert plist before chii chi2 (integer) -1 127.0.0.1:6379> linsert plist after chi cha (integer) 10 127.0.0.1:6379> lrange plist 0 10 1) "ch5" 2) "ch4" 3) "ch2" 4) "chi" 5) "cha" 6) "ch1" 7) "ch0" 8) "ch6" 9) "ch7" 10) "ch8"
二、删除
1、lpop 、rpop:分别为删除头部和尾部,返回被删除的元素
127.0.0.1:6379> lpop plist "ch5" 127.0.0.1:6379> lrange plist 0 10 1) "ch4" 2) "ch2" 3) "chi" 4) "cha" 5) "ch1" 6) "ch0" 7) "ch6" 8) "ch7" 9) "ch8" 127.0.0.1:6379> rpop plist "ch8" 127.0.0.1:6379> lrange plist 0 10 1) "ch4" 2) "ch2" 3) "chi" 4) "cha" 5) "ch1" 6) "ch0" 7) "ch6" 8) "ch7"
2 、ltrim [ltrim key range_l range_r]:保留区域类的元素,其他的删除
127.0.0.1:6379> ltrim plist 0 3 OK 127.0.0.1:6379> lrange plist 0 10 1) "ch4" 2) "ch2" 3) "chi" 4) "cha"
3、lrem [lrem key count value] :移除等于value的元素,当count>0时,从表头开始查找,移除count个;当count=0时,从表头开始查找,移除所有等于value的;当count<0时,从表尾开始查找,移除|count| 个。
cout >0
127.0.0.1:6379> lrange plist 0 10 1) "ch0" 2) "ch0" 3) "ch0" 4) "ch4" 5) "chi" 6) "cha" 7) "ch0" 8) "ch0" 9) "ch0" 10) "ch0" 127.0.0.1:6379> lrem plist 5 ch0 (integer) 5 127.0.0.1:6379> lrange plist 0 10 1) "ch4" 2) "chi" 3) "cha" 4) "ch0" 5) "ch0"
count <0
127.0.0.1:6379> lrange plist 0 10 1) "ch0" 2) "ch9" 3) "ch0" 4) "ch0" 5) "ch0" 6) "ch4" 7) "chi" 8) "cha" 9) "ch0" 10) "ch0" 127.0.0.1:6379> lrem plist -5 ch0 (integer) 5 127.0.0.1:6379> lrange plist 0 10 1) "ch0" 2) "ch9" 3) "ch4" 4) "chi" 5) "cha"
三、修改
lset [lset key index value] : 设置列表指定索引的值,如果指定索引不存在则报错
四、查询
1、lindex [lindex key index]:通过索引index获取列表的元素、key>=0从头到尾,key<0从尾到头
127.0.0.1:6379> lrange plist 0 10 1) "ch2" 2) "ch9" 3) "ch4" 4) "chi" 5) "cha" 127.0.0.1:6379> lindex plist 0 "ch2" 127.0.0.1:6379> lindex plist -0 "ch2" 127.0.0.1:6379> lindex plist -1 "cha" 127.0.0.1:6379> lindex plist 5 (nil)
2、lrange [lrange key range_l range_r]:0 表头、-1表尾
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人