用Redis给Java做优惠卷过期
先科补一下原理
1.我们是利用Redis与Spring Data 来做
虽然定时任务quartz框架也可以做
主要嫌弃定时任务做太多刷数据
服务器压力过大
2.Redis中自带发布/订阅者模式(publish/subscribe)
主要是使用Redis中key的过期时间来做
也就是环境配置好后
3. 用Java保存Redis 顺便设置key的时间
用Java代码订阅Redis中的__keyevent@dbindex__:expired
__keyevent@dbindex__:expired的主要作用是Redis中检测key到期时间的事件
大家都知道Redis中默认有16个库
如果用的是0号库
就检测__keyevent@0__:expired
dbindex表示Redis库的下标
Java代码检测到指定的key过期
然后再把数据库中key指定的数据刷新状态
4. 未写完,先贴出思路,后续会补全实际操作与代码
实际操作(mac)
1.安装homebrew(mac的安装神器,其他操作系统不需要安装)
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.开始下载redis(Windows系统直接去官网下载)
brew install redis
3.下载好后,启动redis
redis-server
4.在Redis目录中找到redis.conf修改配置文件
vim /usr/local/etc/redis.conf
修改 daemonize no 为 daemonize yes 默认启动就后台运行
修改 requirepass foobared 为 requirepass 123456 修改默认密码
修改 notify-keyspace-events "" 为 notify-keyspace-events Ex 打开此配置,其中Ex表示键事件通知里面的key过期事件,每当有过期键被删除时,会发送通知
修改配置完,记得重启Redis
5. 测试redis
ping
set key1 123456
get key1
del key1
6. 测试订阅号
未完成,后续会贴出Java代码
用Redis给Java做优惠卷过期相关推荐
- 仿黑马点评-redis整合【四 优惠卷秒杀(上) 】
前言:
- 【Redis】实战篇:优惠卷秒杀 (库存超卖问题、一人一单问题)
文章目录 3.1 全局唯一ID 3.2 -Redis实现全局唯一Id 3.3 添加优惠卷 3.4 实现秒杀下单 3.5 库存超卖问题分析 3.6 乐观锁解决超卖问题 3.7 优惠券秒杀-一人一单 3. ...
- Redis实现全局唯一id,实现优惠卷秒杀的下单功能
Redis实现全局唯一id public class RedisIdWorker {private StringRedisTemplate stringRedisTemplate;public Red ...
- springboot入门书籍推荐,电商实战之优惠卷实现(1)
1.2. 常见两种实现思路 对于程序来说,对于优惠卷这功能要实现的就是超时自动失效的功能,这功能也不难实现,主要实现方式有两种,一种是使用定时任务的方式,另外一种就是使用消息通知 1.2.1. 定时任 ...
- 如何设计一个优惠卷系统
如何设计一个优惠卷系统 场景 优惠券的种类 优惠券系统的核心流程 发券 领券 用券 需求拆解 商家侧 用户侧 编码 Service 服务 服务结构设计 优惠券系统设计技术难点 Storage存储 表单 ...
- Redis+消息通知处理代金券过期问题
Redis+消息通知处理代金券过期问题 ###1.过期问题解决方案的分析 课程引导语 在电商系统中,秒杀,抢购,红包优惠卷等操作,一般都会设置时间限制,比如订单15分钟不付款自动关闭,红包有效期24小 ...
- Redis介绍 Java客户端操作Redis
Redis介绍 && Java客户端操作Redis 本文内容 redis介绍 redis的 shell 客户端简介 redis的 java 客户端简介 环境配置 redis 2.8.1 ...
- Redis介绍 Java客户端操作Redis
分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow Redis介绍 & ...
- 【Redis】如何使用Redis保存Java对象
前言 最近几天有同事在开发跑合微信版的过程中碰到了一个问题.由于微信端需要通过H5的入口进行账号的绑定,同时需要在会话过期之前定时轮询保持会话有效.这个时候需要在系统中保存微信的ApiConfig对象 ...
- nodjes 支付宝接口 - 优惠卷
2019独角兽企业重金招聘Python工程师标准>>> const crypto = require('crypto'); const request = require('requ ...
最新文章
- Python中read( )与readlines( )的使用
- verilog中的代码使用
- win10 + Ubuntu18.04 双系统,UEFI+GPT,从win10切换到Ubuntu时黑屏问题
- Python基础知识-05-数据类型总结字典
- php join a.id b.id,mysql求助 请问where a.id=b.id 和join on a.id=b.id 在效率上的区别
- 这个爱喝酒的酒鬼可真是让人操碎了心
- html载入hta文件,HTA文件去除html控件认证和接收命令行参数
- wegame登录cf显示服务器人数已满,电一再现万人排队进游戏的盛况?老玩家:感觉回到了三年前...
- 光子 量子 DNA计算机的发展情况,CPU的发展与量子计算机.pdf
- 2018年php还是python好_2018年PHP还值得学习吗?
- css控制图片自适应大小
- 19种电压转换的电路设计方式
- 35岁以后的大龄程序员,正处于怎样一种状态?
- 【技术讨论】从弹弹堂说起,如何用2D物理引擎编写一个游戏lt;一gt;2011-11-05 10:36
- Linux计算节点怎么关闭,OpenStack 删除无用的计算结点
- php日志写什么内容,Monolog-PHP日志类库介绍
- vim 查找替换操作命令
- 51nod3146 绿豆蛙的归宿
- 【流程标准化】标准操作规程(SOP)基础知识
- 2021年10月8日模拟赛(保龄奇遇记)
热门文章
- 基于R语言的聚类(谱聚类)
- PHP使用Socket发送字节流
- STM32入门(一)
- 如何提升串口响应速度
- OpenLayers坐标转换
- bzoj3332 旧试题 [最大生成树]
- r语言 col_co,cob,col,con,cor,cog前缀其实都是com变化而已
- ice1000烧写程序_[转载]Altera FPGA的EPCS配置的2种方法FPGA下载程序的方法(EPCS)
- java 设置压缩文件大小不变_为什么把文件压缩后,文件大小却不变呢?
- 如何远程访问办公室电脑(过年工作不打烊),亲测有效稳定