当前位置: 首页 > article >正文

用redis实现签到功能

功能分析:

针对签到来说,我们可以用0表示未签到,1表示已签到,为了空间上的优化,我们可以用一个bit位来表示某个用户一天是否签到。一个月31天,也就需要31个bit位,这样一个用户一个月最多也就用四个字节(一个字节8位) ,极大的节省了空间。而这个命令可以通过redis中的setbit实现。

以下为java代码实现

    @Override
    public Result sign() {
        //1 获取当前登录用户
        Long userId = UserHolder.getUser().getId();
        //2 获取日期
        LocalDateTime now = LocalDateTime.now();

        //3 拼接key
        String KeySuffix=now.format(DateTimeFormatter.ofPattern(":yyyyMM"));
        String key=RedisConstants.USER_SIGN_KEY+userId+ KeySuffix;
        //4 获取今天是本月的第几天
        int dayOfMonth = now.getDayOfMonth();
        //5 写入redis
        stringRedisTemplate.opsForValue().setBit(key,dayOfMonth-1,true);
        return Result.ok();
    }


http://www.kler.cn/a/388989.html

相关文章:

  • Vim9 语法高亮syntax 在指定的缓冲区和窗口执行命令
  • CSS 自定义滚动条样式
  • vue elementui el-dropdown-item设置@click无效的解决方案
  • go T 泛型
  • JavaScript——函数、事件与BOM对象
  • JavaScript数组去重的实用方法汇总
  • 屏幕后期处理
  • 深度学习之卷积问题
  • Flutter鸿蒙next 使用 BLoC 模式进行状态管理详解
  • 【Axure视频教程】多选按钮控制元件显示和隐藏
  • 汽车共享管理:SpringBoot技术深度解析
  • 【Spring 框架】初识 Spring
  • 鸿蒙系统:安卓与iOS的强劲对手
  • Python与Excel交互:pandas库安装及基本用法
  • 专业140+总分410+东北大学841考研经验东大电子信息与通信工程通信专业基础真题,大纲,参考书
  • SPIRE: Semantic Prompt-Driven Image Restoration 论文阅读笔记
  • ThingsBoard规则链节点:Clear Alarm节点详解
  • Spark SQL大数据分析快速上手-DataFrame应用体验
  • jmeter常用配置元件介绍总结之用linux服务器压测
  • 如何让ffmpeg运行时从当前目录加载库,而不是从/lib64
  • React的概念以及发展前景如何?
  • 2024-2025第九届华为ICT大赛中国创新赛问题解答
  • 【Python】Pygame实战:实现基础跑酷游戏机(附源码)
  • Redis设计与实现 学习笔记 第十六章 Sentinel
  • 前端实现文件下载常用几种方式
  • 计算机课程管理:Spring Boot实现的工程认证解决方案