redis 实现7天连续签到
1.案例
互联网应用中都会有签到功能,吸引更多的用户,保持产品活跃度
如何判断用户连续签到7天
签到 1 天送 10 积分,连续签到 2 天送 20 积分,3 天送 30 积分,4 天以上均送 50 积分
如何显示用户某个月的连续签到次数和总签到次数
可以使用 redis 利用 BitMap 位图来存储签到数据,节省空间
2.操作
GETBIT <key> <offset> <value>
3.案例
- 指定时间内,判断多少人签到连续签到成功
// SETBIT 日期 用户ID value
SETBIT 20211015 10 1
SETBIT 20211016 10 1
SETBIT 20211017 10 1
SETBIT 20211018 10 1
SETBIT 20211015 20 1
SETBIT 20211016 20 0
SETBIT 20211017 20 1
SETBIT 20211018 20 1
SETBIT 20211015 30 1
SETBIT 20211016 30 1
SETBIT 20211017 30 1
SETBIT 20211018 30 1
SETBIT 20211015 40 1
SETBIT 20211016 40 0
SETBIT 20211017 40 0
SETBIT 20211018 40 1
BITOP AND destmap 20211015 20211016 20211017 20211018
BITCOUNT destmap
2
-
查询用户是否连续签到
如设置用户10月份签到数据
// SETBIT 用户ID+月份 日期 value
SETBIT Sign:2094592473:202110 0 1
SETBIT Sign:2094592473:202110 7 1
SETBIT Sign:2094592473:202110 8 1
SETBIT Sign:2094592473:202110 9 0
SETBIT Sign:2094592473:202110 10 1
SETBIT Sign:2094592473:202110 11 1
SETBIT Sign:2094592473:202110 12 1
SETBIT Sign:2094592473:202110 13 0
SETBIT Sign:2094592473:202110 14 1
SETBIT Sign:2094592473:202110 15 1
SETBIT Sign:2094592473:202110 16 1
SETBIT Sign:2094592473:202110 17 1
SETBIT Sign:2094592473:202110 18 1
SETBIT Sign:2094592473:202110 19 1
SETBIT Sign:2094592473:202110 20 1
// 获取10月31天的签到数据
BITFIELD Sign:2094592473:202110 get u31 0 7
1) (integer) 14547968
// 转换成二进制
110111011111110000000000
// 判断是否有连续7天的1
- 查询用户 10月 签到总次数
BITCOUNT Sign:2094592473:202110
4.相关推荐
在线redis测试:在线 reids
其他文章:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律