第五天业务

5-1 你们项目中签到为什么要使用bitmap

因为bitmap是以二进制0、1来表示数据的,用0表示未签到,用1表示已签到,这样就能计算出某一个月份的签到记录放到一条记录里边,大大减少空间。

5-2 你们项目中积分功能是如何实现的

积分微服务是一个独立的、通用的微服务,获取积分的方式有:课程学习,每日签到,课程问答,课程笔记,课程评价等。
首先,编写程序监听MQ,消费消息,消息主要包括: 用户id,增加的积分,类型。
其次,判断是否为每日签到,不是每日签到类型每日积分都有上限
如果不是每日签到,则查询数据库中用户今天某种方式已经获得的积分,如果该积分大于等于该类型每日积分的上限,直接返回,如果该积分加上增加的积分大于等于该类型每日积分的上限,那么就把增加的积分改为上限减去查询的积分。
最后,是不是每日签到都直接在数据库插入一条数据。在可以获取积分的微服务对应的方法里,向MQ投递消息,在积分微服务的监听聚里加入对应的监听即可。

5-3 Redis三大新面试点: 跳表、pipeline、bitmap

跳表是一种用于有序数据的数据结构,它在链表的基础上增加了多级索引来提高查询效率,跳表的核心思想,是通过跳跃式的方式快速定位到日标节点,从而减少查找所票的以较次数。Redis中ZSe就是根跳表实现的,se可以存诸成员及其对应的分数,并支持按分数范用或成员值范围进行快速的查找、插入和删除操作。

pipeline是Redis中的一种优化技术,允许客户端在一次通信中发送多个命令,并在接收响应时一次性获取所有结果。这种批量操作可以减少网络开销和延迟,提高系统吞吐量。通过使用pipeline,客户端可在不同命令间建立依赖关系,实现更复杂的操作。

bitmap是Redis中提供的一种数据结构,底层是以二进制为单位进行储存的,bitmap是基于字符串类型实现的,因此它可以进行基本的字符串操作,比如分片存诸、持久化和备份,bimap通常用于实现一些特定的应用场景,例如在线统计、用户在线状态的记录、布隆过滤器等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值