Redis 系列(二十六):Redis 键空间通知特性
Redis 从 2.8.0 版本开始提供了 键空间通知 特性。键空间通知允许客户端订阅发布/订阅通道,以便接收以某种方式影响Redis 数据集的事件。
Redis Keyspace Notifications:https://redis.io/topics/notifications
Redis 从 2.8.0 版本开始提供了 键空间通知 特性。键空间通知允许客户端订阅发布/订阅通道,以便接收以某种方式影响Redis 数据集的事件。
Redis Keyspace Notifications:https://redis.io/topics/notifications
Redis 已成为被广泛使用的成熟开源软件(内存数据库)。有很多基于 Redis 的开源项目、工具、模块,为分布式,集群,分布,管理 等提供了很好的解决方案。感谢开源社区。
Redis 实验室:RedisLabs GitHub,Redis 模板:Redis Labs Modules GitHub
Redis 是基于内存的键值数据库,除了延迟问题之外,内存使用是另一种致命问题。
在极少数情况下,Redis 可能遇到致命的崩溃问题,可能通过更多的操作来对问题进行诊断分析。
Redis Memory Optimization,译文:内存优化, Redis 4.x系列(十二):Redis 内存优化(使用合适的数据类型)
Redis 服务在生产环境上线运行后,因为使用了不恰当的命令或在大数据集情况下可能出现响应客户端延迟问题;Redis 是单线程快速处理请求,在亚微秒范围内,若现现了延迟则其它所有客户端的请求都将进入等待,这是无法接受的。
本篇对延迟原因进行分析诊断,对服务器环境进行延迟测试并提供优化措施。官方相关资料Redis 延迟问题诊断:Redis latency problems troubleshooting,Redis 延迟监控框架:Redis latency monitoring framework
Redis 服务上线后,难免会出现故障需要诊断修复。
服务器日常运维需要进行健康检查,日常的健康检查可以在故障发现之前给运维管理人员提前预警,可以了解发生了什么,服务器的各项指标情况;可以使用SLOWLOG
命令来识别慢速命令或慢操作等。当产生故障时就是到了最糟糕的情况。
可能因某些原因,需要移动或复制存储在 Redis 实例中的数据,就需要进行数据迁移。数据迁移是数据存储系统运维的一项非常重要的工作,更多概念见百度词条数据迁移。
Redis 的数据迁移主要依赖于主从复制和数据持久化功能。
Redis 服务上线后,日常的运维和管理同样非常重要。Redis 服务自带了使用最广泛的管理工具redis-cli
,在Linux环境下熟练使用该管理工具是非常必要的。
Redis 运维和管理还需要关注数据备份和恢复,数据迁移,对 Redis 实例内存指标的监控等。
Redis 部署个测试或者测开环境是非常简单的,但如果部署生产环境,则需要考虑更多的因素。
Redis 生产环境几乎都是部署在基于 Linux 操作系统的服务器上,需要考虑操作系统级别优化、还有客户端连接参数、Redis 安全、内存策略、日志配置、基准测试等。
这篇文章持续了一个多星期,查了 N 多资料,虽然只是几个优化参数的设置,但有必要深入理解其含义,涉及到对 Linux 底层相关概念的理解,挺费劲的,终于成章。
Redis 可存储数据量受限于内存容量,单实例存储了大量数据(通常 16G 以上)的处理能力就会遇到瓶颈, 在进行持久化或主从复制时, 会越来越多地出现诸如延迟等的问题。针对这种情况,就需要通过部署多节点的 Redis 集群来存储大量的数据,可以将数据集通过分区的方式分布到多个 Redis 主实例中。
Redis 从 3.0 版本开始支持 Redis Cluster(集群),提供了数据在 Redis 节点之间自动分片
简单的复制机制并不能保证高可用,若仅仅只配置了master-slave复制,当 master无法提高服务时,整个 Redis 服务就停了,slave 无法接替 master 继续提供服务。
Redis 为实现高可用提供了基于复制机制 的 **Sentinel(哨兵)**模式解决方案。Redis Sentinel Documentation,Redis 的 Sentinel 文档