Redis键值变更通知机制的配置及使用

这篇具有很好参考价值的文章主要介绍了Redis键值变更通知机制的配置及使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Redis设置

因为开启键通知功能需要消耗一些CPU,所以默认情况下该功能是关闭的,可以通过修改redis.conf文件,或者使用config set 命令来临时开启或关闭键空间通知功能,但使用命令的方式如果Redis重启了将会被还原。

config set notify-keyspace-events "Ex"

设置的字符含义如下:

字符 发送的通知
K 键空间通知,所有通知以 keyspace@ 为前缀
E 键事件通知,所有通知以__keyevent@__为前缀
g del、expire、rename 等类型无关的通用命令的通知
$ string命令的通知
l list命令的通知
s set命令的通知
h hash命令的通知
z zset命令的通知
x 过期事件:每当有过期键被删除时发送
e 驱逐(evict)事件:每当有键因为 maxmemory 政策而被删除时发送
A 参数 g$lshzxe 的别名

根据含义可知,上面命令就是:打开键失效的事件通知。

Springboot业务应用

前提:redis打开键通知开关

场景

监控指定redis库的key失效事件,redis-key失效时执行相关业务逻辑。

编码

新增类,需继承KeyExpirationEventMessageListener

@Component
@Slf4j
public class RedisKeyBasicExpirationListener 
				extends KeyExpirationEventMessageListener {

	// 当前服务连接的redis库序列号
    @Value("${spring.redis.database}")
    private Integer database;

    public RedisKeyBasicExpirationListener(
    	RedisMessageListenerContainer listenerContainer) {
        super(listenerContainer);
    }
    
    // 指定监听数据库
    @Override
    protected void doRegister(RedisMessageListenerContainer listenerContainer) {
        listenerContainer
        	.addMessageListener(
        		this, new PatternTopic("__keyevent@" + database + "__:expired")
        	);
    }

    @Override
    public void onMessage(Message message, byte[] pattern) {
        // 业务逻辑执行
    }
}

注意:KeyExpirationEventMessageListener类默认是监听redis所有库的失效事件,如果想监听所有库,那就删除doRegister()方法,否则,需要加上doRegister()方法进行redis库指定。文章来源地址https://www.toymoban.com/news/detail-640448.html

到了这里,关于Redis键值变更通知机制的配置及使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在 Redis 中处理键值 | Navicat

    Redis 是一个键值存储系统,允许我们将值与键相关联起来。与关系型数据库不同的是, 在Redis 中,不需要使用数据操作语言 (DML) 和查询语法,那么我们如何进行数据的写入、读取、更新和删除操作呢?本教程将介绍如何使用 redis-cli 和 Navicat for Redis 来进行键的写入、读

    2024年02月11日
    浏览(29)
  • redis键值对映射关系存储-Dict

    Redis是一个键值型(Key-Value Pair)的数据库,可以根据键实现快速的增删改查。而 键与值的映射关系正是通过Dict来实现的 。 Dict由三部分组成,分别是: 哈希表(DictHashTable) 、 哈希节点(DictEntry) 、 字典(Dict) 哈希表: 哈希节点: size大小只能是 2^n sizemark一定要是 2^

    2024年02月09日
    浏览(37)
  • 深入解析Redis:一种快速、高效的键值存储系统

    在现代应用程序中,高性能和可扩展性是至关重要的。Redis(Remote Dictionary Server)是一种快速、高效的键值存储系统,它具有出色的性能和灵活的数据结构。本文将深入解析Redis的特点、安装配置、基本操作、高级功能、性能优化、应用场景、注意事项和最佳实践。 1.1 介绍

    2024年02月16日
    浏览(37)
  • Redis开源协议变更!Garnet:微软开源代替方案?

    Garnet:微软开源的高性能替代方案,秉承兼容 RESP 协议的同时,以卓越性能和无缝迁移能力重新定义分布式缓存存储! - 精选真开源,释放新价值。 最近,Redis修改了开源协议,从BSD变成了 SSPLv1和 RSALv2 的双重许可,而RSALv2 和 SSPLv1,都并未被 OSI 正式认可。OSI 认为

    2024年04月14日
    浏览(35)
  • 缓存的变更(JVM本地缓存->Redis分布式缓存)

    在一次需求修改中,下游的服务附加提出了,针对某个业务数据缓存的生效时间的要求 原JVM设计方案: 采用jvm本地缓存机制,定时任务30秒刷新一次 现在redis方案: 因为很多地方使用了这个业务数据缓存,使用方面不能改动过多 因为是分布式部署,如果只使用jvm缓存,无法

    2024年02月11日
    浏览(46)
  • redis发布订阅广播模式的使用&结合jeecg的Redis网关路由刷新机制

    本质和传统的消息发布和订阅机制是差不多的,但是相较于其他几款MQ产品,Redis的使用更加便捷,也更加轻量化,不需要搭建一套繁重的MQ框架。 但是也它致命的缺点,redis的消息不会被持久化,服务器出现问题,消息会丢失,导致数据问题。对于数据一致性要求比较高的场

    2023年04月20日
    浏览(79)
  • Redis 非关系型数据库 配置与优化

    关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL 语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作。 主流的关系型数据库包括 Oracle、MySQL、SQL Server、Microsoft A

    2024年02月09日
    浏览(41)
  • 数据库缓存服务——NoSQL之Redis配置与优化

    目录 一、缓存概念 1.1 系统缓存 1.2 缓存保存位置及分层结构 1.2.1 DNS缓存 1.2.2 应用层缓存 1.2.3 数据层缓存 1.2.4 硬件缓存 二、关系型数据库与非关系型数据库 2.1 关系型数据库 2.2 非关系型数据库 2.3 关系型数据库和非关系型数据库区别: 2.4 非关系型数据库产生背景 2.5 总结

    2024年02月15日
    浏览(48)
  • 【NOSQL数据库】Redis数据库的配置与优化一

    关系型数据库是一个结构化的数据库, 创建在关系模型(二维表格模型)基础上 ,一般面向于记录。 SQL 语句(标准数据查询语言)就 是一种基于关系型数据库的语言 ,用于执行对关系型数据库中数据的检索和操作。 主流的关系型数据库包括 Oracle、MySQL、SQL Server、Microso

    2024年02月11日
    浏览(46)
  • Redis支持的数据结构有哪些?Redis使用单线程还是多线程?Redis的持久化机制有哪些?Redis的缓存淘汰策略有哪些?

    Redis支持的数据结构包括: 字符串(string):存储一个字符串。 列表(list):按照插入顺序存储多个字符串。 集合(set):存储多个不重复的字符串。 有序集合(sorted set):存储多个不重复的字符串,并为每个字符串关联一个分数,可以根据分数进行排序。 哈希表(has

    2024年02月12日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包