先科补一下原理

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做优惠卷过期相关推荐

  1. 仿黑马点评-redis整合【四 优惠卷秒杀(上) 】

    前言:

  2. 【Redis】实战篇:优惠卷秒杀 (库存超卖问题、一人一单问题)

    文章目录 3.1 全局唯一ID 3.2 -Redis实现全局唯一Id 3.3 添加优惠卷 3.4 实现秒杀下单 3.5 库存超卖问题分析 3.6 乐观锁解决超卖问题 3.7 优惠券秒杀-一人一单 3. ...

  3. Redis实现全局唯一id,实现优惠卷秒杀的下单功能

    Redis实现全局唯一id public class RedisIdWorker {private StringRedisTemplate stringRedisTemplate;public Red ...

  4. springboot入门书籍推荐,电商实战之优惠卷实现(1)

    1.2. 常见两种实现思路 对于程序来说,对于优惠卷这功能要实现的就是超时自动失效的功能,这功能也不难实现,主要实现方式有两种,一种是使用定时任务的方式,另外一种就是使用消息通知 1.2.1. 定时任 ...

  5. 如何设计一个优惠卷系统

    如何设计一个优惠卷系统 场景 优惠券的种类 优惠券系统的核心流程 发券 领券 用券 需求拆解 商家侧 用户侧 编码 Service 服务 服务结构设计 优惠券系统设计技术难点 Storage存储 表单 ...

  6. Redis+消息通知处理代金券过期问题

    Redis+消息通知处理代金券过期问题 ###1.过期问题解决方案的分析 课程引导语 在电商系统中,秒杀,抢购,红包优惠卷等操作,一般都会设置时间限制,比如订单15分钟不付款自动关闭,红包有效期24小 ...

  7. Redis介绍 Java客户端操作Redis

    Redis介绍 && Java客户端操作Redis 本文内容 redis介绍 redis的 shell 客户端简介 redis的 java 客户端简介 环境配置 redis 2.8.1 ...

  8. Redis介绍 Java客户端操作Redis

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow Redis介绍 & ...

  9. 【Redis】如何使用Redis保存Java对象

    前言 最近几天有同事在开发跑合微信版的过程中碰到了一个问题.由于微信端需要通过H5的入口进行账号的绑定,同时需要在会话过期之前定时轮询保持会话有效.这个时候需要在系统中保存微信的ApiConfig对象 ...

  10. nodjes 支付宝接口 - 优惠卷

    2019独角兽企业重金招聘Python工程师标准>>> const crypto = require('crypto'); const request = require('requ ...

最新文章

  1. Python中read( )与readlines( )的使用
  2. verilog中的代码使用
  3. win10 + Ubuntu18.04 双系统,UEFI+GPT,从win10切换到Ubuntu时黑屏问题
  4. Python基础知识-05-数据类型总结字典
  5. php join a.id b.id,mysql求助 请问where a.id=b.id 和join on a.id=b.id 在效率上的区别
  6. 这个爱喝酒的酒鬼可真是让人操碎了心
  7. html载入hta文件,HTA文件去除html控件认证和接收命令行参数
  8. wegame登录cf显示服务器人数已满,电一再现万人排队进游戏的盛况?老玩家:感觉回到了三年前...
  9. 光子 量子 DNA计算机的发展情况,CPU的发展与量子计算机.pdf
  10. 2018年php还是python好_2018年PHP还值得学习吗?
  11. css控制图片自适应大小
  12. 19种电压转换的电路设计方式
  13. 35岁以后的大龄程序员,正处于怎样一种状态?
  14. 【技术讨论】从弹弹堂说起,如何用2D物理引擎编写一个游戏lt;一gt;2011-11-05 10:36
  15. Linux计算节点怎么关闭,OpenStack 删除无用的计算结点
  16. php日志写什么内容,Monolog-PHP日志类库介绍
  17. vim 查找替换操作命令
  18. 51nod3146 绿豆蛙的归宿
  19. 【流程标准化】标准操作规程(SOP)基础知识
  20. 2021年10月8日模拟赛(保龄奇遇记)

热门文章

  1. 基于R语言的聚类(谱聚类)
  2. PHP使用Socket发送字节流
  3. STM32入门(一)
  4. 如何提升串口响应速度
  5. OpenLayers坐标转换
  6. bzoj3332 旧试题 [最大生成树]
  7. r语言 col_co,cob,col,con,cor,cog前缀其实都是com变化而已
  8. ice1000烧写程序_[转载]Altera FPGA的EPCS配置的2种方法FPGA下载程序的方法(EPCS)
  9. java 设置压缩文件大小不变_为什么把文件压缩后,文件大小却不变呢?
  10. 如何远程访问办公室电脑(过年工作不打烊),亲测有效稳定