Redis中List数据结构实战应用场景简介

LPUSH key  value [value........]                          //将一个或者多个value插入到key列表的表头(最左边)

RPUSH key  value [value........]                          //将一个或者多个value插入到key列表的表尾(最右边)

LPOP  key                                                        //移除并返回key列表的头元素

RPOP key                                                        //移除并返回key列表的尾元素

LRANGE key start    stop                             //返回key列表指定区间的元素

BLPOP key  [key]    timeout                        //从key列表的表头弹出一个元素,若列表中没有元素,阻塞等待

                                                                      timeout秒,如果timeout等于0,一直阻塞等待

LRPOP key   [key.........] timeout                //从key列表的表尾弹出一个元素,若列表中没有元素,阻塞等待

                                                                     timeout秒,如果timeout等于0,一直阻塞等待

用redis的一些组合可以实现常用额的数据结构

Stack(栈)=LPUSH+LPOP  ——>FIFO

Queue(队列) =LPUSH+RPOP

Blocking MQ(阻塞队列)=LPUSH+BRPOP

我的关注列表 wechat:official:account:6787: focusList

假设何炅微信公众号key:wechat:official:account:list:1000234

假设撒贝宁微信公众号key:wechat:official:account:list:1000258

假设周星驰微信公众号key:wechat:official:account:list:1000258

设计思路,我们将每个公众号的消息都已list列表来存储

然后我们自己关注的人也用list列表来存储。

要实现订阅给公众号列表

首先我们需要获取关注列表

LRANGE wechat:official:account:6787: focusList 0   -1 (获取关注列表)   

获取关注列表后,我们列表中的每个对象进行遍历

LRANGE key:wechat:official:account:list:1000234 0   20 (获取关注用户最近的20条) 

点击查看历史文章   LRANGE key:wechat:official:account:list:1000234 0   -1  (获取关注用户所有文章)

然后将所有的List封装到一个List集合,转换json返回前台。

用户写文章: LPUSH wechat:official:account:6787:654647    value(json字符串)

用户写文章: LPUSH wechat:official:account:6787:654647    value(json字符串)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值