NodeJS使用Redis键的过期回调
时间:2022-07-23
本文章向大家介绍NodeJS使用Redis键的过期回调,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
具体文档可以查看: https://www.jianshu.com/p/1749339749cf
情况说明
当我支付宝创建订单后, 需要定时的把没有完成的订单给关闭, 这时候需要有个定时任务, 或者队列来完成, 不想安装兔子, 那就用本来就安装了的Redis来简单实现
步骤
1. 开启Redis通知事件
Centos中, 如果使用yum安装的话, 可以在 /etc/redis.conf
查看配置
微信截图_20200325160355.png
可以在文件内搜索notify-keyspace-events
来找到, 并去除前面的注释
微信截图_20200325155847.png
随后重启Redis
2. 安装ioredis
yarn add ioredis
3. 写代码
const Redis = require('ioredis')
const CONF = {
port: 6379,
host: "127.0.0.1",
db: 3
}
const redis = new Redis(CONF)
// 创建监听
redis.send_command('config', ['set', 'notify-keyspace-events', 'Ex'], subExpired)
// 存入一个四秒后会过期的键
redis.set('key', 'bar', 'EX', 4)
// 监听回调
function subExpired (err, res) {
// 这里需要创建一个新的Redis对象
// 因为 Connection in subscriber mode, only subscriber commands may be used
const sub = new Redis(CONF)
// 设置事件参数
const expired_subKey = `__keyevent@${CONF.db}__:expired`
sub.subscribe(expired_subKey, function () {
sub.on('message', function (info, msg) {
console.log(info, msg)
})
})
}
4.看结果
image.png
- 即时通讯软件可以用GO语言实现吗
- Go语言-连接数据库SQLite、MySQL、Oracle - Mike_zh
- 连接redis
- glang文件读写
- Spring框架中的设计模式(三)
- go语言结构体定义使用
- Spring框架中的设计模式(四)
- Go语言单元测试
- go语言中json转成map结构
- Spring框架中的设计模式(五)
- Oracle 12c数据库优化器统计信息收集的最佳实践(二)
- hdu-----(4514)湫湫系列故事——设计风景线(树形DP+并查集)
- hdu----(1402)A * B Problem Plus(FFT模板)
- uva----(100)The 3n + 1 problem
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SpringBoot下载xlsx模板,导出excel数据
- 如何利用机器学习和Gatsby.js创建假新闻网站
- Spring Security 实战干货: 401和403状态
- Spring Data R2DBC响应式操作MySQL
- 项目端口可以设置为 6666 吗?
- 【JS】666- window.reqeustIdleCallback方法详解
- 一个无聊的宏定义
- windows的Ubuntu子系统ssh和ftp
- 面试官问:如何设计一个安全的对外接口?
- [树莓派公网远程监控]autossh反向代理
- 用 LDSC 计算遗传度以及遗传相关性
- SVG 入门指南(初学者入门必备)
- 快速介绍Python数据分析库pandas的基础知识和代码示例
- CSDN如何自定义一个漂亮的模块
- centeros7安装mysql