采用redis的bitmap高级数据结构(会把你输入的数值保存为2进制的形式,则天然的形成了0和1的保存)
例如我们开发签到功能,则需要设计好key -> user:signs:{年份}:{id}(前面为固定的相应项目,后面为可变的)
例如:
SETBIT user:signs:2025:12 240 1
则会在240个位置设置为1,则就是240天的时候是签到了的
(则每个用户 一年的数据 只需要 46B,因为1B有8bit,46*8的个数已经超过了360天的数量了,可以达到1天1位)
后面也可以延申到任何 只存储是否的变量
注意点
RBitSet bitSet = redissonClient.getBitSet(userSignInRedisKeyPrefix);
这里去redissonClient拿到的bitSet 是Redisson和redis之间的交互的对象,是redisson反复请求进行的,则我们要传给java的bitmap对象,在内存中进行操作。
1万+

被折叠的 条评论
为什么被折叠?



