5-1 你们项目中签到为什么要使用bitmap
bitmap是一个以bit为单位的数组,每个单元只能存储二进制数0或1
所以,我们在项目中使用bitmap来存储签到信息
这样避免了使用签到表的方式,节省了空间
5-2 你们项目中积分功能是如何实现的
在项目中,用户可以通过签到、看视频、发评论、做笔记,并且积分可以形成排行榜
由于获取积分的途径很多,所以我们将积分业务与原有业务进行解耦合,并采用mq的方式异步监听,
具体来讲就是学习微服务和签到服务会向mq中投递消息,积分微服务监听mq,并保存积分记录
不同的积分方式有不同的监听器
在签到功能中,连续签到有奖励积分,当积分统计完毕后我们将积分记录存入redis
最后,为了防止刷分,每种积分方式都设置了积分上限
5-3 Redis三大新面试点: 跳表、pipeline、bitmap
跳表:
跳表(Skip List)在Redis中被用作有序集合(Sorted Set)的底层实现数据结构。有序集合是一种集合数据类型,
其中的元素是唯一的,并且每个元素都关联一个分值(score),这些元素根据分值的大小按照一定顺序进行排序。
使用场景有:有序集合的实现,范围的查询等
pipeline:
pipeline是一种用于批量执行命令的技术。它允许客户端将多个命令打包发送给服务器,
然后一次性接收服务器的响应,从而减少了网络通信的开销,提高了性能和吞吐量。
使用场景有:减少网络延迟,批量处理命令等
bitmap:
bitmap是一种特殊的数据结构,用于存储位图信息,每个位代表一个状态,
适用于需要对大量状态进行快速记录和统计的场景。
使用场景有:计数器,状态标记等