Redis list列表类型的解释,(实操)

大家好,今天我们分享一下Redis list列表类型的解释

redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

清空Redis数据库所有信息

127.0.0.1:6379> FLUSHALL
OK

现在数据库里没有东西

127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> 

这里,记住: 所有的list 命令都是以l开头的

以list的方式创建几个值

127.0.0.1:6379> LPUSH list zhangsan
(integer) 1
127.0.0.1:6379> LPUSH list lisi
(integer) 2
127.0.0.1:6379> LPUSH list wangwu
(integer) 3
127.0.0.1:6379> LPUSH list zhaoliu
(integer) 4
127.0.0.1:6379> 

输出所有的值(数字下标的方式):倒着来的

127.0.0.1:6379> LRANGE list 0 -1
1) "zhaoliu"
2) "wangwu"
3) "lisi"
4) "zhangsan"

展示第一个和第二个的值:(倒着来的)

127.0.0.1:6379> LRANGE list 0 1
1) "zhaoliu"
2) "wangwu"

我们看见,新加的这一个被放在了最后

127.0.0.1:6379> LRANGE list 0 -1      //把一个值放在最后(右边)
1) "zhaoliu"
2) "wangwu"
3) "lisi"
4) "zhangsan"
5) "jushi"

这里提一下,Redis里的命令是不区分大小写的

这是我们现在的list 当中的数据

127.0.0.1:6379> LRANGE list 0 -1
1) "zhaoliu"
2) "wangwu"
3) "lisi"
4) "zhangsan"
5) "jushi"

移除第一个

127.0.0.1:6379> LPOP list
"zhaoliu"

list 里的所有数据信息

127.0.0.1:6379> LRANGE list 0 -1
1) "wangwu"
2) "lisi"
3) "zhangsan"
4) "jushi"

移除最后一个数据

127.0.0.1:6379> RPOP list
"jushi"
127.0.0.1:6379> 

list 里的现在所有数据信息

127.0.0.1:6379> LRANGE list 0 -1
1) "wangwu"
2) "lisi"
3) "zhangsan"

通过下标查看某一个值

127.0.0.1:6379> LINDEX list 0     //第一个
"wangwu"
127.0.0.1:6379> LINDEX list 1      //第二个
"lisi"
127.0.0.1:6379> LINDEX list 2       //第三个
"zhangsan"

删除数据库中所有数据

127.0.0.1:6379> FLUSHALL
OK

以list的方式加上三个数据

127.0.0.1:6379> LPUSH list yuwen
(integer) 1
127.0.0.1:6379> LPUSH list shuxue
(integer) 2
127.0.0.1:6379> LPUSH list yingyu
(integer) 3

列出列表的长度

127.0.0.1:6379> LLEN list
(integer) 3
127.0.0.1:6379> 

列出所有数据

127.0.0.1:6379> LRANGE list 0 -1
1) "yingyu"
2) "shuxue"
3) "yuwen"

删除指定的值

127.0.0.1:6379> lrem list 1 yuwen
(integer) 1

查看现在的数据

127.0.0.1:6379> LRANGE list 0 -1
1) "yingyu"
2) "shuxue"
127.0.0.1:6379> LREM list 2 yuwen     //删除2个yuwen的数据

127.0.0.1:6379> LRANGE list 0 -1
1) "yingyu"
2) "shuxue"

重写添加数据

127.0.0.1:6379> RPUSH test "t1"
(integer) 1
127.0.0.1:6379> RPUSH test "t2"
(integer) 2
127.0.0.1:6379> RPUSH test "t3"
(integer) 3
127.0.0.1:6379> RPUSH test "t4"
(integer) 4
127.0.0.1:6379> RPUSH test "t5"
(integer) 5

查看所有键

127.0.0.1:6379> keys *
1) "test"

这就是我们刚才添加的

127.0.0.1:6379> LRANGE test 0 -1
1) "t1"     //编号为0
2) "t2"      //这个是1
3) "t3"      //这是2
4) "t4"      //这是3
5) "t5"      //这个是4
6) "t6"        //这个是5
127.0.0.1:6379> 

保留第二个和第三个

127.0.0.1:6379> LTRIM test 1 2
OK

查看现在的所有的值

注意,编号为0,表示第一个数据,编号为-1 ,表示的是最后一个数据

LRANGE test 0 -1 //这个命令的意思是展示所有的数据

127.0.0.1:6379> LRANGE test 0 -1
1) "t2"
2) "t3"

建这样的数据

127.0.0.1:6379> RPUSH shuaige "1"
(integer) 1
127.0.0.1:6379> RPUSH shuaige "2"
(integer) 2
127.0.0.1:6379> RPUSH shuaige "3"
(integer) 3
127.0.0.1:6379> RPUSH shuaige "4"
(integer) 4

看一下这里有什么

127.0.0.1:6379> LRANGE shuaige  0 -1
1) "1"
2) "2"
3) "3"
4) "4"

将shuaige列表当中最后 的(元素)东西移到laoshi列表 里边

127.0.0.1:6379> RPOPLPUSH shuaige laoshi
"4"

查看现在的数据(没有4了)

127.0.0.1:6379> LRANGE shuaige  0 -1
1) "1"
2) "2"
3) "3"

查看laoshi里边的数据
(发现有4了)

127.0.0.1:6379> LRANGE laoshi  0 -1
1) "4"

这就是一个移动的操作

删除所有数据信息

127.0.0.1:6379> FLUSHALL
OK

判断是否存在shuaige 这个列表(0 表示不存在)

127.0.0.1:6379> EXISTS shuaige
(integer) 0

新建一个叫shuaige的列表,在表中添加数据(da)

127.0.0.1:6379> LPUSH shuaige da
(integer) 1
127.0.0.1:6379> 

查看数据

127.0.0.1:6379> LRANGE shuaige 0 0
1) "da"
127.0.0.1:6379> 

将shuaige 这个列表当中的第一个值替换为hello

127.0.0.1:6379> LSET shuaige 0 hello
OK
127.0.0.1:6379> 

现在它的数据是hello

127.0.0.1:6379> LRANGE shuaige 0 -1
1) "hello"

shuaige这个列表当中不存在1号元素 ,因为它只有一个,(默认为0)

这样做就会报错

127.0.0.1:6379> lset shuaige 1 wo
(error) ERR index out of range
127.0.0.1:6379> 

创建列表数据:

127.0.0.1:6379> RPUSH yh "123"
(integer) 1
127.0.0.1:6379> RPUSH yh "456"
(integer) 2

查看

127.0.0.1:6379> LRANGE yh 0 -1
1) "123"
2) "456"

在456的前面加上485

127.0.0.1:6379> LINSERT yh before "456" "485"   
(integer) 3

查看现在的数据

127.0.0.1:6379> LRANGE yh 0 -1
1) "123"
2) "485"
3) "456"

也可以在456的后面插入新的数据

127.0.0.1:6379> LINSERT yh after  "456" "74125"
(integer) 4
127.0.0.1:6379> 

查看现在的数据

127.0.0.1:6379> LRANGE yh 0 -1
1) "123"
2) "485"
3) "456"
4) "74125"

注意点:

Redis 的list 实际上可以理解为为一个链表前后左右都可以插入新的数据

如果key不存在要创建新的列表,才可以进行数据插入的操作

如果 存在,就可以直接插入

好了,有关于Redis的list操作就到这里了,谢谢大家

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思诚代码块

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值