Redis基础篇4-list类型

list类型

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

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

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

Redis存储空间(类似java双向链表)

先进后出,start 和 stop可以反方向查询,

 添加/修改数据

lpush key value1 [value2] ...                    #执行lpush和rpush说明这是list
rpush key value1 [value2] ...

获取数据

lrange key start stop

lindex key index

llen key

获取并移除数据

lpop key

rpop key

规定时间内获取并移除数据

blpop key1 [key2] timeout
brpop key1 [key2] timeout

#blpop list0 5

业务场景

微信朋友圈点赞,要求按照点赞顺序显示点赞好友信息

如果取消点赞,移除对应好友信息

移除指定数据

lrem key count value

Tips6:

redis应用于具有操作先后顺序的数据控制

list类型数据操作注意事项

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

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

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

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

业务场景

1.twitter,新浪微博,腾讯微博中个人用户的关注顺序进行展示,粉丝列表需要将最近关注的粉丝列在前面

2.新闻,咨询类网将最新的新闻或资讯按照发生的时间顺序展示

3.企业运营过程中,系统将产生出大量的运营数据,保障多台服务器操作日志的统一顺序输出

解决方案

1.依赖list的数据具有顺序的特征对信息进行管理

2.使用队列模型解决多路信息汇总合并的问题

3.使用栈模型解决最新消息的问题

模拟

服务器1

rpush logs a1..
rpush logs a1..

服务器2

rpush logs b1..

服务器3

rpush logs c1..

服务器2

rpush logs b1...

服务器1

lrange logs 0 -1

输出

1) "a1.."
2) "a1..."
3) "b1.."
4) "c1.."
5) "b1..."

使用队列模型解决多路信息汇总合并的问题

Tips7:

redis应用于最新消息展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值