Redis的List的删除
2024-09-01 17:22:05
Redis的List命令里没有根据index删除元素的命令,但有的时候业务会需要这个功能。
先上命令:
LSET ListKey index "__deleted__"
LREM ListKey 0 "__deleted__"
也可以用事务管道合并成一次请求
MULTI
LSET ListKey index "__deleted__"
LREM ListKey 0 "__deleted__"
EXEC
先用LSET命令将要删除的索引值置为一个特殊的删除标识,再利用LREM命令将有删除标识的元素删除掉。
另外相关讨论显示,redis之所以没有直接内置这个命令,是因为要考虑分布式情况下 两个或多个端同时发送LREM请求,index是一个但是可能会删掉多个。LSET则只会覆盖掉同一index的值。无法以安全的原子操作来实现它。
最新文章
- sshd 指定端口,指定秘钥文件
- 获取与Url链接相关的信息
- Eclipse插件收集
- [麦先生]Laravel框架实现发送短信验证
- ecstore与淘宝sdk的autoload加载顺序问题
- 枚举Enumerations
- springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置
- 获取一个 app 的 URL Scheme 的方法:
- [ACM] HDU 5025 Saving Tang Monk (状态压缩,BFS)
- iOS开发之iOS7设置状态栏字体颜色
- shell脚本学习(一)
- Struts2的运行机制简介
- web beacon
- 解决IAR printf函数输出中文字符乱码问题
- 如何自学 Android 的?
- Java技术开发中的坑
- JDK1.8源码逐字逐句带你理解LinkedHashMap底层
- 用VC实现特定编辑框上对回车键响应
- Rhythmk 一步一步学 JAVA(4):Spring MVC -之拦截器
- hdu1517A Multiplication Game(巴什博弈变形)