从Redis中智能设置阀值获取通知(redis阀值通知)
从Redis中智能设置阀值获取通知
随着互联网业务的不断发展,大数据应用愈发普及,如何快速准确地获取业务异常信息成为很多企业需要解决的问题。在对故障信息监控中,智能地对于取值的设定可以提高问题发现的效率以及降低资源的浪费。此时,Redis智能设置阀值的功能成为了解决这个问题的一种非常合适的方式。
Redis是一款基于内存的高性能键值存储系统,在互联网应用中被广泛应用。它具备多种功能和接口,支持分布式数据库和多种数据结构,我们只考虑其中的 sorted set 类型用于阀值判断。在Redis中,sorted set 是一个比较特殊的数据结构,它不仅可以实现数据的排序,还可以实现对数据的查找和范围取值。
那么,我们想要利用Redis关联数据结构的排序和查询功能,如何设计一个完整的方案来实现阀值获取通知的效果呢?
1、阀值的设置
在Redis中,利用 sorted set 的有序性,可以给不同的指标设定不同的阀值。例如我们以业务结果的延迟时间作为指标,而延迟时间的阈值 thresholds 为 10ms,20ms,50ms,100ms 等。
zadd "serverDelayThreshold" 10 "10ms"
zadd "serverDelayThreshold" 20 "20ms"zadd "serverDelayThreshold" 50 "50ms"
zadd "serverDelayThreshold" 100 "100ms"
其中,zadd 命令参数:sorted set 的 key, 分值和成员。通过这样可以对不同的指标进行不同的阀值设定。
2、业务数据存储
我们通过业务数据存储,在Redis中将多个数据点拼成一个 dataStr,存储联合条件keyStr下。以下为其中的一个样例:
set "keyStr_dataStr" "business1_tenant1|1,67,100,200,2|1634911234"
其中,数据为 4 个点(1,67,100,200),另外加上业务ID,租户ID和时间戳。
3、阀值判断
实时监测业务中数据点的取值,将数据点的值存入 sorted set zset,利用 zrangewithscores 命令判断 realizedValue 处于 sorted set 的哪个位置; 判断 realizedValue 是否超出阀值,如超出阀值,计入临时 sorted set severeErrSortedSet,其实现如下:
realizedValue = 120
zadd "serverDelayZset" realizedValue timestampsevereErrSortedSet = zrangebyscore "serverDelayZset" 100 0
其中,zrangebyscore 命令参数为:sorted set 的 key, 分值上下值(因为分值最大设定为100 所以为[100,0]),且红灯阀值为100ms。
得到 severeErrSortedSet 后,就可以通过 redis pubsub 的方式实现通知发现。具体实现方式就是阈值变化后向某个频道发送消息,订阅这个信息的通知模块可以及时接收新的信息,然后处理故障消息提醒。
在目标频道发布信息
publish "setThresholdNotice" "redis is super!"
通过这样,我们可以实现阀值的智能动态调整,达到更好的告警效果。
4、定期阈值优化和数据删除
业务数据每隔固定时间(例如一天)进行一次错峰清理,在此过程中,将联合条件中的时间戳与当前时间差值,若大于该租户配置的清理策略,则删除 keyStr_dataStr。在定时任务中,对各个阀值进行梳理,不断调整阈值,以达到更好连接率的效果。
以上即是从Redis中智能设置阀值获取通知的实现方法,通过阀值的智能动态调整,可以达到更好的故障告警效果,进一步提升线上系统的可用性。
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 从Redis中智能设置阀值获取通知(redis阀值通知)
相关文章
- Redis轻松实现开机自启动(redis设置开机自启动)
- Redis:极速之选(redis为什么那么快)
- 操作轻松高效!掌握Redis缓存命令行的利与弊(redis缓存命令行)
- 玩转Redis集群,实现性能提升(怎么看redis集群)
- 深度探索Redis查看所有键值(怎么查看redis全部健)
- 让应用极速调用Redis的秘籍(应用怎么调用redis)
- 实现本地设置Redis密码的过程(本地设置redis密码)
- 重置Redis从节点清除数据的正确方法(清除redis从节点数据)
- 字节跳动高效利用Redis存储数据(字节跳动redis存储)
- 如何购买Redis一步步探索购买的方法(如何购买redis)
- 写Redis之读写翻天覆地(redis 频繁读)
- 构建稳定可靠的Redis集群实现节点上下线(redis集群节点上下线)
- 答案Redis配置仅设置一个主库(redis配置主库只能写)
- Redis超时 返回何种结果(redis超时返回什么)
- 新建Redis集群仅需单数台服务即可(redis集群单数台)
- 优化Redis访问超时参数调整(redis访问超时设置)
- 研究Redis如何设置数据库地址(redis设置数据库地址)
- 使用Redis设定多个数据库(redis设置数据库个数)
- 使用Redis让局域网内部更加连接(redis设置局域网链接)
- 可访问如何使用Redis进行公网访问设置(redis 设置公网)
- 利用Redis控制数据库数量(redis 设置db数量)
- Redis设置密码却没有生效(redis设密码不生效)