Redis-数据类型-List

文章目录

1、通过客户端连接redis

bash 复制代码
[root@localhost ~]# /usr/local/redis/bin/redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> 

2、切换到第二个数据库 db1

bash 复制代码
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> 

3、查看当前库所有key

bash 复制代码
127.0.0.1:6379[1]> keys *
(empty array)
127.0.0.1:6379[1]> 

4、从左边插入一个或多个值

bash 复制代码
127.0.0.1:6379[1]> lpush k1 a b c d
(integer) 4
127.0.0.1:6379[1]> keys *
1) "k1"
127.0.0.1:6379[1]> 

5、按照索引下标获得元素(从左到右)

bash 复制代码
127.0.0.1:6379[1]> lrange k1 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379[1]> 

6、针对key指定的list,从右边放入元素

bash 复制代码
127.0.0.1:6379[1]> rpush k2 a b c d
(integer) 4
127.0.0.1:6379[1]> lrange k2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
127.0.0.1:6379[1]> 

7、返回list集合的长度

bash 复制代码
127.0.0.1:6379[1]> lrange k1 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379[1]> llen k1
(integer) 4
127.0.0.1:6379[1]> lrange k2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
127.0.0.1:6379[1]> llen k2
(integer) 4
127.0.0.1:6379[1]> 

8、从左边弹出一个元素。弹出=返回+删除

bash 复制代码
127.0.0.1:6379[1]> lrange k2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
127.0.0.1:6379[1]> lpop k2 1
1) "a"
127.0.0.1:6379[1]> lrange k2 0 -1
1) "b"
2) "c"
3) "d"
127.0.0.1:6379[1]> 

9、从右边弹出一个元素

bash 复制代码
127.0.0.1:6379[1]> lrange k2 0 -1
1) "b"
2) "c"
3) "d"
127.0.0.1:6379[1]> rpop k2 1
1) "d"
127.0.0.1:6379[1]> lrange k2 0 -1
1) "b"
2) "c"
127.0.0.1:6379[1]> 

10、从source中rpop一个元素,lpush到destination

bash 复制代码
127.0.0.1:6379[1]> lrange k1 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379[1]> rpoplpush k1 k3
"a"
127.0.0.1:6379[1]> lrange k1 0 -1
1) "d"
2) "c"
3) "b"
127.0.0.1:6379[1]> lrange k3 0 -1
1) "a"
127.0.0.1:6379[1]> 

11、根据索引从集合中取值,只是查看值,并没有弹出值

bash 复制代码
127.0.0.1:6379[1]> lrange k1 0 -1
1) "d"
2) "c"
3) "b"
127.0.0.1:6379[1]> lindex k1 1
"c"
127.0.0.1:6379[1]> lrange k1 0 -1
1) "d"
2) "c"
3) "b"
127.0.0.1:6379[1]> 

12、在pivot指定的值前面或后面插入value

bash 复制代码
127.0.0.1:6379[1]> lpush k4 n m l k j i h
(integer) 7
127.0.0.1:6379[1]> lrange k4 0 -1
1) "h"
2) "i"
3) "j"
4) "k"
5) "l"
6) "m"
7) "n"
127.0.0.1:6379[1]> linsert k4 after k x
(integer) 8
127.0.0.1:6379[1]> lrange k4 0 -1
1) "h"
2) "i"
3) "j"
4) "k"
5) "x"
6) "l"
7) "m"
8) "n"
127.0.0.1:6379[1]>

13、只能针对存在的list执行lpushx

bash 复制代码
127.0.0.1:6379[1]> keys *
1) "k1"
2) "k3"
3) "k2"
4) "k4"
127.0.0.1:6379[1]> lpushx k5 a b c d
(integer) 0
127.0.0.1:6379[1]> keys *
1) "k1"
2) "k3"
3) "k2"
4) "k4"
127.0.0.1:6379[1]> 

14、根据count指定的数量从key对应的list中删除value具体执行时从左往右删除,遇到一个删一个,删完为止

bash 复制代码
127.0.0.1:6379[1]> rpush k5 a b c a b c d a b c c a
(integer) 12
127.0.0.1:6379[1]> lrange k5 0 -1
 1) "a"
 2) "b"
 3) "c"
 4) "a"
 5) "b"
 6) "c"
 7) "d"
 8) "a"
 9) "b"
10) "c"
11) "c"
12) "a"
127.0.0.1:6379[1]> lrem k5 5 c
(integer) 4
127.0.0.1:6379[1]> lrange k5 0 -1
1) "a"
2) "b"
3) "a"
4) "b"
5) "d"
6) "a"
7) "b"
8) "a"
127.0.0.1:6379[1]> 

15、把指定索引位置的元素替换为另一个值

bash 复制代码
127.0.0.1:6379[1]> lrange k5 0 -1
1) "a"
2) "b"
3) "a"
4) "b"
5) "d"
6) "a"
7) "b"
8) "a"
127.0.0.1:6379[1]> lset k5 2 c
OK
127.0.0.1:6379[1]> lrange k5 0 -1
1) "a"
2) "b"
3) "c"
4) "b"
5) "d"
6) "a"
7) "b"
8) "a"
127.0.0.1:6379[1]> 

16、仅保留指定区间的数据,两边的数据被删除

bash 复制代码
127.0.0.1:6379[1]> lrange k5 0 -1
1) "a"
2) "b"
3) "c"
4) "b"
5) "d"
6) "a"
7) "b"
8) "a"
127.0.0.1:6379[1]> ltrim k5 1 3
OK
127.0.0.1:6379[1]> lrange k5 0 -1
1) "b"
2) "c"
3) "b"
127.0.0.1:6379[1]> 
相关推荐
师太,答应老衲吧1 小时前
SQL实战训练之,力扣:2020. 无流量的帐户数(递归)
数据库·sql·leetcode
Channing Lewis2 小时前
salesforce case可以新建一个roll up 字段,统计出这个case下的email数量吗
数据库·salesforce
毕业设计制作和分享4 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
ketil274 小时前
Redis - String 字符串
数据库·redis·缓存
Hsu_kk5 小时前
MySQL 批量删除海量数据的几种方法
数据库·mysql
编程学无止境5 小时前
第02章 MySQL环境搭建
数据库·mysql
knight-n5 小时前
MYSQL库的操作
数据库·mysql
包饭厅咸鱼6 小时前
QML----复制指定下标的ListModel数据
开发语言·数据库
王佑辉6 小时前
【redis】延迟双删策略
redis
生命几十年3万天6 小时前
redis时间优化
数据库·redis·缓存