day05

本文讨论了项目中使用Bitmap节约存储空间、高效查询签到状态,积分功能的设计包括签到奖励、每日上限以及微服务下的实现。同时介绍了Redis的跳表、pipeline优化技术和Bitmap在特殊场景的应用。
摘要由CSDN通过智能技术生成

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

bitmap是Redis中的一种数据结构,底层是以二进制为单位进行储存的,使用bitmap的原因主要有以下原因:

第一,由于每个比特位只占用一位内存空间,相比其他数据结构,位图可以节省大量的存储空间,只占用非常小的一部分内存

第二,使用位操作可以快速查询某个日期是否被标记为签到,提高了查询效率
 

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

我们项目中积分功能是在学习微服务下的

我们将积分获取途径设置有五种,

第一类是签到获取、

第二类是通过学习课程、

第三类是课程回答、

第四类是课程笔记、

第五类是课程评价。

在签到获取中,我们有连续签到奖励机制,连续签到次数越多,奖励的积分越多。签到数据写入redis后,再保存到数据库。

在其他四个方式获取积分中,为了防止有人恶意刷分,我们设置了每天通过该方式获得的积分上限,获得够一定积分后,便不能通过此类方式获取。
 

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

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

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值