积分签到mysql_简易积分签到功能java代码实现实现Redis缓存数据

-------需求说明

---- 需求分析

积分签到处于app页面“我的”,用户会频繁的来回切换,如果将数据全部存储到数据库中然后去数据库中做查询,所以这里我才用的Redis缓存的方式将签到数据缓存起来;

在表结构设计的时候,由于需求还没有完全确定下来,所以签到规则等信息还不是很明确,这里配置了两个表,一个积分签到表,一个积分配置表;

CREATE TABLE `np_customer_sign_info` (

`sign_info_id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键',

`rule_name` varchar(50) DEFAULT NULL COMMENT '规则名称、说明',

`sign_info_type` varchar(30) DEFAULT NULL COMMENT ' 积分类型名称',

`rule_key` varchar(20) DEFAULT NULL COMMENT '规则Key值(redis缓存或者mysql查询) ',

`rule_grade` int(10) DEFAULT NULL COMMENT '规则对应积分值',

`rule_type` enum('1','2','3') DEFAULT NULL COMMENT '规则类型 1 累加 2 翻倍 3 其他',

`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',

`del_flag` enum('0','1') DEFAULT '0' COMMENT '删除标志 0正常 1删除',

PRIMARY KEY (`sign_info_id`),

KEY `redis_key` (`rule_key`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='会员签到积分配置表';

积分签到表

CREATE TABLE `np_customer_sign_grade` (

`grade_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '签到id',

`customer_id` bigint(20) NOT NULL COMMENT '会员id',

`grade__flow_id` bigint(30) DEFAULT NULL COMMENT '积分流水号',

`grade_detail` varchar(75) DEFAULT NULL COMMENT '积分说明',

`grade_type` enum('0','1') NOT NULL COMMENT '积分类型 0获取积分 1消费积分',

`grade` int(20) NOT NULL COMMENT '积分',

`succ_record` int(2) DEFAULT NULL COMMENT '连续签到记录数',

`create_time` timestamp NOT NULL COMMENT '创建时间',

`create_date` varchar(50) NOT NULL COMMENT '创建日期',

`del_flag` enum('0','1') NOT NULL COMMENT '删除标志 0未删除 1已删除',

PRIMARY KEY (`grade_id`)

) ENGINE=InnoDB AUTO_INCREMENT=223 DEFAULT CHARSET=utf8 COMMENT='会员签到积分表';

为了避免页面刷新频繁查询数据库,所以我才用了将签到信息存储到Redis中的方式进行存储,这样每次刷新页面的时候,可以直接在Redis中查询数据,从而避免频繁查询数据库;

由于每次签到都需要先校验昨天是否有签到记录,然后之后就不再查询两天前的数据,所以这里为每一个签到数据设置了一个过期时间,避免签到无用的签到数据占用服务器内存空间,以提高Redis效率;redis设置的过期时间为2天;

在最初写代码的时候,我想的是将用户的签到信息用Ha

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值