redis-list扩展命令
来源:互联网 发布:阿里云数据分析 编辑:程序博客网 时间:2024/05/18 09:48
一.list元素数量
llen key:返回指定的key关联的链表中的元素的数量
当前链表为
a b c d
二.效率低下的一些操作(了解)
以下操作就是些效率低下的命令,都会在执行命令前为元素赋索引,所以到万不得已的时候才会使用
1.删除某种元素
lrem key count value:删除count个值为value的元素,如果count大于0,从头向尾遍历并删除count个值为value的元素,如果count小于0,则从尾向头遍历并删除。如果count等于0,则删除链表中所有等于value的元素
此时我们可以先建一个链表如下:
a b c a b c a b //链表名为list1
a.删除链表中所有的a元素
lrem list1 0 a
b.删除链表中两个b,删除顺序是从头到尾删除
lrem list1 2 b
2.通过索引替换元素
lset key index value:设置链表中的index的脚标的元素值,0代表链表的头元素,-1代表链表的尾元素。操作链表的脚标不存在则抛出异常
我们先把list1重新设置为
a b c a b c a b
a.想把下标为2的元素进行替换,即c换成aaaaa
lset list1 2 aaaaa
3.在索引前/后插入元素
linsert key before | after pivot value:在pivot元素前或者后插入value这个元素
此时list1链表的数据如下
a b aaaaa a b c a b
a.在下标为2的元素前,插入元素ccccc
linsert key before aaaaa ccccc
b.在aaaaa之后插入元素bbbbb
linsert list1 before aaaaa ccccc
三.对队列的操作
对于链表,我们一般都会其进行如下两种操作
- 做大数据集合增删
- 任务队列操作(链表的操作)
rpoplpush resource destination:将链表中的尾部元素弹出并添加到头部
1.两队排列
我们先把list1重新变为
a b c d
rpoplpush list1 list2 //执行这个命令前list2是不存在的
执行之后
key valuelist1 a b clist2 d
再执行一次就变成
key valuelist1 a blist2 c d
2.循环列表
我们先把list1重新变为
a b c d
执行这个就变成
rpoplpush list1 list1
简单来说就是一个链表循环,尾部结束到头部来
阅读全文
1 0
- redis-list扩展命令
- redis-set扩展命令
- redis list命令操作
- redis系列--list命令
- redis--list 命令
- redis命令(list)
- Redis List 命令列表
- redis | list命令
- Redis List命令
- redis入门-String扩展命令
- redis入门-hash扩展命令
- redis常见操作命令-list
- redis list类型 操作命令
- redis列表(list)命令
- Redis命令学习—List(列表)
- 初识redis之常用List命令
- Redis学习记录之命令List(十一)
- Redis 与列表(List)相关的命令
- Tyvj4879(dp+倍增+NTT)
- 人人听懂《金刚经》
- Java学习笔记3
- Java后台框架篇--拦截器与过滤器之间的区别
- Cannot read property 'replace' of null
- redis-list扩展命令
- Leetcode之Implement strStr() 问题
- Neo4j+py2neo性能测试(CMDB二)
- Java实现数字签名
- 简述区块链架构设计,通俗易懂
- 20170928_二叉树的镜像
- JAVA Freemarker(7)--macro、nested与function
- TeamViewer 无法连接上伙伴
- maven常用命令介绍