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]> 
相关推荐
炬火初现15 分钟前
Etcd的安装与使用
数据库·etcd
IT猿手24 分钟前
2025最新群智能优化算法:云漂移优化(Cloud Drift Optimization,CDO)算法求解23个经典函数测试集,MATLAB
开发语言·数据库·算法·数学建模·matlab·机器人
雷渊29 分钟前
深入分析理解mysql的MVCC
java·数据库·面试
Paparazi灬32 分钟前
RocksDB写流程各种场景下的处理逻辑和线程交互时序
数据库
神经星星1 小时前
【vLLM 教程】使用 TPU 安装
数据库·人工智能·机器学习
hjehheje2 小时前
clickhouse查询效率低
数据库·人工智能
七七powerful2 小时前
ClickHouse 中出现 DB::Exception: Too many parts 错误
java·前端·数据库
Linux运维老纪3 小时前
Python实战项目(‌Hands-on Python Project)
开发语言·数据库·python·sql·mysql·云计算·运维开发
小林熬夜学编程3 小时前
【MySQL】第十五弹---全面解析事务:定义、起源、版本支持与提交方式
android·linux·服务器·开发语言·数据库·mysql
一只淡水鱼663 小时前
【redis】使用redis作为缓存时所注意事项
redis·缓存