redis之List类型常用方法总结
redis之List类型常用方法总结
格式:
存---LPUSH key value [value ...]
取--LRANGE key start stop
lpush key value [value ...] 将一个或多个值插入到列表头部
127.0.0.1:6379> lpush plf panlifu
(integer) 1
127.0.0.1:6379> lpush plf lt
(integer) 2
127.0.0.1:6379> lpush plf xs
(integer) 3
127.0.0.1:6379> lpush plf cd
(integer) 4
127.0.0.1:6379> lrange plf 0 1
1) "cd"
2) "xs"
127.0.0.1:6379> lrange plf 0 3
1) "cd"
2) "xs"
3) "lt"
4) "panlifu"
lrange key start stop 获取列表指定范围内的元素
127.0.0.1:6379> lpush plf panlifu
(integer) 1
127.0.0.1:6379> lpush plf lt
(integer) 2
127.0.0.1:6379> lpush plf xs
(integer) 3
127.0.0.1:6379> lpush plf cd
(integer) 4
127.0.0.1:6379> lrange plf 0 1
1) "cd"
2) "xs"
127.0.0.1:6379> lrange plf 0 3
1) "cd"
2) "xs"
3) "lt"
4) "panlifu"
blpop key [key ...] timeout 移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
127.0.0.1:6379> blpop plf timeout 1
1) "plf"
2) "cd"
127.0.0.1:6379> lrange plf 0 4
1) "xs"
2) "lt"
3) "panlifu"
brpop key [key ...] timeout 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
127.0.0.1:6379> lrange plf 0 4
1) "xs"
2) "lt"
3) "panlifu"
127.0.0.1:6379> brpop plf timeout 1
1) "plf"
2) "panlifu"
127.0.0.1:6379> lrange plf 0 4
1) "xs"
2) "lt"
brpoplpush source destination timeout 从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。?
127.0.0.1:6379> brpoplpush plf lt timeout 10
(error) ERR wrong number of arguments for 'brpoplpush' command
127.0.0.1:6379>lindex key index 通过索引获取列表中的元素
127.0.0.1:6379> lrange plf 0 3
1) "xs"
2) "lt"
127.0.0.1:6379> lindex plf 1
"lt"
127.0.0.1:6379> lindex plf 0
"xs"
127.0.0.1:6379>
linsert key BEFORE|AFTER pivot value 在列表的元素前或者后插入元素
127.0.0.1:6379> lrange plf 0 3
1) "xs"
2) "lt"
127.0.0.1:6379> linsert plf after lt hehe
(integer) 3
127.0.0.1:6379> lrange plf 0 3
1) "xs"
2) "lt"
3) "hehe"
127.0.0.1:6379> linsert plf before lt hehe
(integer) 4
127.0.0.1:6379> lrange plf 0 3
1) "xs"
2) "hehe"
3) "lt"
4) "hehe"
llen key 获取列表长度
127.0.0.1:6379> lrange plf 0 3
1) "xs"
2) "hehe"
3) "lt"
4) "hehe"
127.0.0.1:6379> llen plf
(integer) 4
lpop key 移出并获取列表的第一个元素
127.0.0.1:6379> lrange plf 0 3
1) "xs"
2) "hehe"
3) "lt"
4) "hehe"
127.0.0.1:6379> llen plf
(integer) 4
127.0.0.1:6379> lpop plf
"xs"
127.0.0.1:6379> lrange plf 0 3
1) "hehe"
2) "lt"
3) "hehe"
lpushx key value 将一个值插入到已存在的列表头部
```shell
127.0.0.1:6379> lpushx hehe hello
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> lpushx plf hello
(integer) 4
127.0.0.1:6379> lrange plf 0 5
1) "hello"
2) "hehe"
3) "lt"
4) "hehe"
```
lrem key count value 移除列表元素,count次数
127.0.0.1:6379> lrange plf 0 5
1) "hello"
2) "hehe"
3) "lt"
4) "hehe"
127.0.0.1:6379> lrem plf 2 hehe
(integer) 2
127.0.0.1:6379> lrange plf 0 5
1) "hello"
2) "lt"
lset key index value 通过索引设置列表元素的值
127.0.0.1:6379> lrange plf 0 5
1) "hello"
2) "lt"
127.0.0.1:6379> lset plf 0 gunkai
OK
127.0.0.1:6379> lrange plf 0 5
1) "gunkai"
2) "lt"
ltrim key start stop 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
127.0.0.1:6379> lrange plf 0 10
1) "gunkai"
2) "lt"
3) "1"
4) "2"
5) "3"
6) "4"
7) "5"
8) "6"
9) "7"
10) "8"
127.0.0.1:6379> ltrim plf 0 3
OK
127.0.0.1:6379> lrange plf 0 10
1) "gunkai"
2) "lt"
3) "1"
4) "2"
rpop key 移除列表的最后一个元素,返回值为移除的元素。
127.0.0.1:6379> lrange plf 0 10
1) "gunkai"
2) "lt"
3) "1"
4) "2"
127.0.0.1:6379> rpop plf
"2"
127.0.0.1:6379> lrange plf 0 10
1) "gunkai"
2) "lt"
3) "1"
rpoplpush source destination 移除列表的最后一个元素,并将该元素添加到另一个列表并返回
127.0.0.1:6379> lrange plf 0 10
1) "gunkai"
2) "lt"
3) "1"
127.0.0.1:6379> rpoplpush plf lt
"1"
127.0.0.1:6379> lrange plf 0 10
1) "gunkai"
2) "lt"
127.0.0.1:6379> lrange lt 0 10
1) "1"
rpush key value [value ...] 在列表中添加一个或多个值
127.0.0.1:6379> lrange plf 0 5
1) "gunkai"
2) "lt"
127.0.0.1:6379> rpush plf 1 2 3 4 5 6 7 8
(integer) 10
127.0.0.1:6379> lrange plf 0 10
1) "gunkai"
2) "lt"
3) "1"
4) "2"
5) "3"
6) "4"
7) "5"
8) "6"
9) "7"
10) "8"
rpushx key value 为已存在的列表添加值
127.0.0.1:6379> rpushx test_key 1
(integer) 0
127.0.0.1:6379> lrange test_key 0 1
(empty list or set)
总结:以x结尾都是判断 key是否存在,不存在就不能设置,存在才能设置。以r开头表示可以同时添加多个值
redis之List类型常用方法总结的更多相关文章
- redis之Hash类型常用方法总结
redis之Hash类型常用方法总结 格式: 存--HMGET key field [field ...] 取--HMGET key field [field ...] M:表示能取多个值,many ...
- redis之Set(有序)类型常用方法总结
redis之Set(有序)类型常用方法总结 存--ZADD key [NX|XX] [CH] [INCR] score member [score member ...] XX: 仅仅更新存在的成员, ...
- redis之Set(无序)类型常用方法总结
redis之Set(无序)类型常用方法总结 存--sadd key member [member ...] 取--SMEMBERS key sadd key member [member ...] 向 ...
- 深入浅出Redis04使用Redis数据库(lists类型)
一 lists类型及操作 List是一个链表结构,主要功能是push,pop,获取一个范围的所有值等等,操作中key理解为链表的名字. Redis的list类型其实就是一个每个子元素都是sring类 ...
- 【redis】03list类型
list类型 redis的list类型是一个链表结构,他的主要功能是push.pop.获取一个范围的所有值等等一些操作, 咱们push什么意思,push是不是相当于咱们php里面的array_push ...
- redis的lists类型
List是一个链表结构 , 主要功能是push . pop .获取一个范围的所有值等等 , 操作中key理解为链表的名字 . redis 的 list类型其实就是一个每个子元素都是string类型的双 ...
- redis的set类型
1.简单描述 redis的set类型是string类型数值的无序集合.set元素最大可以包含2的32次方减1个元素.由于set类型是通过hash table实现(旧版本是这样,新版本不确定是不是改用了 ...
- redis的list类型
1.简单介绍 redis的list类型其实就是一个每个元素都是string类型的双向链表.所以lpush.rpush.lpop和rpop命令的时间复杂度是O(1),list会记录链表的长度,所以lle ...
- redis数据类型-字符串类型
Redis数据类型 字符串类型 字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据.你可以用其存储用户的邮箱.JSON化的对象甚至是一张图片.一个字符串类型键允许存储的 ...
随机推荐
- KK音标
目录 KK音标 参考 音标发音 音标口诀 五个规则 KK音标
- 「JSOI2012」玄武密码
「JSOI2012」玄武密码 传送门 题目是要求多个串在母串上的最长匹配长度. 考虑 \(\text{AC}\) 自动机,我们建出 \(\text{Trie}\) 图然后用母串来在上面跑. 每一个能匹 ...
- left join 、right join 和inner join之间的区别
SQL的left join .right join 和inner join之间的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) ...
- logback.xml设置mogodb日志打印控制台
<logger name="org.springframework.data.mongodb.core" level="DEBUG"/>
- FileUpload之FileItem类的常用方法
http://blog.csdn.net/chinaliuyan/article/details/7002014
- The Captain 题解
20200216题目题解 这是一篇题解祭题解记,但一共就一道题目.(ROS菜大了) 题目如下: The Captain 给定平面上的n个点,定义(x1,y1)到(x2,y2)的费用为min(|x1-x ...
- java编译问题之Description Resource Path Location Type Java compiler level does not match the version of
project 编译问题,需要三处的jdk版本要保持一致,才能编译通过. 1.在项目上右键properties->project Facets->修改右侧的version 保持一致 2. ...
- 3、gitlab备份与恢复
1.备份 #修改配置文件,启用备份 [root@localhost ~]# vim /etc/gitlab/gitlab.rb 377 gitlab_rails['backup_path'] = &q ...
- 「JSOI2010」旅行
「JSOI2010」旅行 传送门 比较妙的一道 \(\text{DP}\) 题,思维瓶颈应该就是如何确定状态. 首先将边按边权排序. 如果我们用 \(01\) 串来表示 \(m\) 条边是否在路径上, ...
- cmake学习资料收集
CMake 学习笔记 : https://www.jianshu.com/p/c417e4ab8b30