redis使用场景之list(二)---微信朋友圈点赞、日志消息队列

由于list自身的一些特性,所以我们可以将其应用于具有操作先后顺序的数据控制,比如微信朋友圈点赞,要求按点赞顺序显示好友信息。也可应用于最新消息的展示,下面我们就针对这它的特性分析一下它的使用场景。

业务场景

微信朋友圈点赞,要求按照点赞顺序显示点赞好友信息,还有需要满足中间的某个人取消了点赞,我们要能将其剔除

解决方案

list自带移除指定数据操作

lrem key count value

业务场景

Twitter、新浪微博、腾讯微博中个人用户的关注列表需要按照用户的关注顺序进行展示,粉丝列表需要降最近关注的粉丝列在前面

新闻、资讯类网站如何将最新的新闻或资讯按照发生的时间顺序显示?

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

解决方案

  1. 依赖list的数据具有顺序的特征对信息进行管理
  2. 使用队列模型解决多路信息汇总合并的问题
  3. 使用栈模型解决最新消息的问题

比如使用队列模型解决多路信息汇总合并的问题,现在越来越流行分布式服务架构,日志系统无疑是排查系统问题的关键所在。那么我们如何解决多台机器日志统一的问题,比如有4台机器,一会存在A机器,一会存在B机器,分别拿到每台机器上的日志,4份日志一个一个对照时间,我想这会很麻烦。当然现在有很多分布式日志的框架,我们今天使用轻量级的redis来解决。思路:无论哪台机器在插入日志的时候我们都调用redis中的list模型进行插入,然后在取的时候都是按照插入的顺序进行显示,这样就很容易将多台信息汇总到一台机器上,从而完成了多路信息汇总合并的问题。

List类型数据操作注意事项

  1. List中保存的数据都是string类型的,数据总容量是有限的,最多2^32-1个元素(4294967295)
  2. List具有索引的概念,但是操作数据时通常以队列的形式进行入队出队操作,或以栈的形式进行入栈出栈操作
  3. 获取全部数据操作结束索引设置为-1
  4. List可以对数据进行分页操作,通常第一页的信息来自于list,第二页及更多的信息通过数据库的形式加载
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章