Redis 入门学习 (五) —— list列表类型

一、list类型

 

1.数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分

2.需要的存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序

3.list类型:保存多个数据,底层使用双向链表存储结构实现

二、list 类型数据基本操作

1.添加/修改数据

a. lpush key value1 [value2] ……  从左边开始(left)

b. rpush key value1 [value2] ……  从右边开始(right)

2.获取数据

a. lrange key start stop(start-stop表示索引,即从0开始,length-1为最后一个)

b. lindex key index(index:索引位置)

c. llen key(数据长度)

注:如果数据过多但是想查询全部,索引可以为由0开始,由-1结束!

eg:从左往右放入a,b,c

模拟存储

 

从左往右存储示意图

从右往左存储示意图

3.获取并移除数据(类似于栈操作,后进先出)

a. lpop key

b. rpop key

三、list 类型数据扩展操作

1.规定时间内获取并移除数据(阻塞式数据获取)

a. blpop key1 [key2] timeout

b. brpop key1 [key2] timeout

c. brpoplpush source destination timeout

从左往右存a,b,取走b,再取走a,此时为空;

30s取完list0中的数据(30s中途加数据也会马上取出来) 

5s取完list0中的数据(没有最后为nil空)

四、list 类型数据操作注意事项

1.list中保存的数据都是string类型的,数据总容量是有限的,最多2^32 - 1 个元素 (4294967295)

 2. list具有索引的概念,但是操作数据时通常以队列的形式进行入队出队操作,或以栈的形式进行入栈出栈操作

3. 获取全部数据操作结束索引设置为-1

4. list可以对数据进行分页操作,通常第一页的信息来自于list,第2页及更多的信息通过数据库的形式加载

五、模拟应用(微信朋友圈点赞)

1. lrem key count value     移除指定数据(count:移除个数,value:移除的值)

eg:id为01的用户的一条动态,a,b,c,d,e都为其点了赞(依次向右展示),现在要把d取消点赞

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

知笑长长

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

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

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

打赏作者

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

抵扣说明:

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

余额充值