zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

【地铁上的Redis与C#】数据类型(八)--List类型操作注意事项与常见业务场景

Redisc#List 操作 类型 常见 -- 场景
2023-06-13 09:16:59 时间

这篇文章是List类型的最后一篇文章,我们来看看list类型的注意事项和常见业务场景。

操作注意事项

list类型的操作注意事项一般有如下四点:

  1. list类型中保存的数据都是string类型的,并且数据存储在大容量为232-1个元素;
  2. list虽然包含索引的概念,但是操作数据时通常是以队列的形式进行入队和出队操作,或者以栈的形式进行入栈和出栈操作;
  3. list可以对数据进行分页操作,但是一般来说在实际开发中通常第一页的数据是从Redis中获取的,后续页码的数据都是从数据库中获取的,这是因为在大部分情况下,第一页所展示的数据就能解决问题。(这里要按情况而定);
  4. 获取全部数据的操作结束索引设置为-1。

常见业务场景

list类型常见的业务场景有两种:

  1. 需按照时间顺序依次展示的场景,例如微信朋友圈点赞,微博关注的人列表和粉丝列表,需要按照时间顺序从最近到最远来展示,新闻类网站上的新闻按发生时间顺序由进及远展示,下面就医微信朋友圈点赞为例,来说一下。 微信朋友圈点赞,要求按点赞顺序显示点赞的好友。根据这个场景我们可以使用list类型来存储点赞的用户,以朋友圈信息的Id为key,点赞人的id为vuale,每增加一个点赞的人就调用 rpush 指令向value中增加一个数据。对于取消点赞,我们就需要使用lrem指令,他的语法是这样的lrem key count value,其中count表示要删除几个,比如A用户取消了对id为123的朋友圈的点赞信息,那么我们可以这么编写指令lrem 123 1 a
  2. 系统日志按照发生时间统一顺序输出,例如多台服务器的操作日志统一输出。涉及到这个问题我们就可以使用list,因为list具有顺序的特征,对日志的管理很方便,并且使用队列模型可以解决多路信息汇总合并问题,栈模型也能解决最新消息问题。

Tip:Redis应用具有对操作先后顺序的数据控制,因此对朋友圈点赞排序适合使用list类型来存储数据。