家里电脑做网站服务器,上海网站优化排名公司,北京市建筑工程设计有限责任公司,抖音小程序怎么制作Redis 介绍
Redis 是一个开源的高性能键值对#xff08;key-value#xff09;数据库。它通常用作数据库、缓存和消息代理。Redis 支持多种类型的数据结构#xff0c;Redis 通常用于需要快速访问的场景#xff0c;如会话缓存、全页缓存、排行榜、实时分析等。由于其高性能和…Redis 介绍
Redis 是一个开源的高性能键值对key-value数据库。它通常用作数据库、缓存和消息代理。Redis 支持多种类型的数据结构Redis 通常用于需要快速访问的场景如会话缓存、全页缓存、排行榜、实时分析等。由于其高性能和灵活性Redis 在现代应用程序中非常流行。
随着项目对 Redis 依赖度逐渐提升对于 Redis 的稳定性保障变得尤为重要需要及时发现 Redis 性能是否够用如连接数、QPS、缓存命中率、阻塞连接数、bigkey 、slowkey 等。及时发现问题对于系统的稳定性和性能优化会有极大的提升。
观测云
观测云具备完整的可观测能力本文详细解读如何通过观测云采集器 DataKit采集 Redis 各项指标并配置监控器向用户主动报告 Redis 问题。
Redis 监控用户创建
创建监控用户可选redis 6.0 进入 redis-cli 命令行创建用户并且授权
CONFIG SET maxmemory-policy allkeys-lfu
ACL SETUSER username on get read connection keyspace ~*采集 hotkey 数据maxmemory-policy 策略需要设置为 volatile-lfu 或者 allkeys-lfu采集 bigkeyhotkey 主机安装模式需要安装 redis-cli 如果部署了 redis-server 则不需要重复安装 redis-cli 服务。
部署 DataKit
数据通过 DataKit 采集DataKit 是一款开源、一体式的数据集成 Agent用于采集系统运行的各种指标、日志等数据并将这些数据汇总给观测云。DataKit 安装方式可以参考官方手册。
主机安装方式参考主机安装 - 观测云文档
Redis 采集器
适用于虚拟机部署的 Redis 监控使用主机安装方式安装 DataKit 后在 /usr/local/datakit/conf.d/db 目录下复制 redis.conf.sample 为 redis.conf 。
cp redis.conf.sample redis.conf调整 redis.conf 内容如下
# {version: 1.60.0, desc: do NOT edit this line}[[inputs.redis]]host 172.31.16.153port 6379password rediszjsjredis_cli_path /usr/bin/redis-clihotkey truebigkey true[inputs.redis.log]# #required, glob logfilesfiles [/var/log/redis/*.log]## grok pipeline script pathpipeline redis.pmatch ^\S.*[inputs.redis.tags]# some_tag some_value# more_tag some_other_value...本配置打开了 hotkey 和 big key 采集同时开启了 Redis 运行日志采集。
配置完成后重启 DataKit执行命令 datakit service -R 关键核心指标
blocked_clients等待阻塞调用如 BLPOP/BRPOP 等的客户端数量。connected_clients客户端连接数不包括从副本的连接。connected_slaves已连接的副本replica数量。evicted_clients由于 maxmemory-clients 限制而被驱逐的客户端数量。evicted_keys由于 Max-Memory 限制而被驱逐的键数量。expired_keys键过期事件的总数。io_threaded_reads_processed主线程和 I/O 线程处理的读事件数量。io_threaded_writes_processed主线程和 I/O 线程处理的写事件数量。keyspace_hits在主字典中成功查找键的次数。keyspace_misses在主字典中查找键失败的次数。latency_percentiles_usec基于命令类型的延迟百分位分布统计。maxclientsmaxclients 配置指令的值是 connected_clients、connected_slaves 和 cluster_connections 之和的上限。maxmemoryMax Memory 配置指令的值。mem_fragmentation_bytesused_memory_rss 和 used_memory 之间的差异。mem_fragmentation_ratioused_memory_rss 和 used_memory 之间的比率。rdb_bgsave_in_progress正在进行 RDB 保存的标志。rdb_changes_since_last_save自上次 SAVE 或 BGSAVE 调用以来数据集变化的操作数。rdb_current_bgsave_time_sec正在进行的 RDB 保存操作的持续时间。rdb_last_bgsave_time_sec上次 RDB 保存操作的持续时间。rdb_last_save_time上次成功的 RDB 保存的基于时间戳的记录。rdb_saves自启动以来执行的 RDB 快照数量。rejected_connections由于 Max-Clients 限制而被拒绝的连接数。total_blocking_keys阻塞键的数量。total_net_input_bytes从网络读取的总字节数。total_net_output_bytes写入网络的总字节数。total_net_repl_input_bytes为复制目的从网络读取的总字节数。total_net_repl_output_bytes为复制目的写入网络的总字节数。uptime_in_secondsRedis 服务器启动以来的秒数。used_cpu_sysRedis 服务器消耗的系统 CPU 时间。used_cpu_userRedis 服务器消耗的用户 CPU 时间。used_memoryRedis 使用其分配器分配的总字节数。used_memory_rss操作系统看到的 Redis 分配的字节数常驻集大小。
仪表板
登录观测云控制台点击「场景」 -「新建仪表板」输入 Redis 选择 Redis监控视图 点击确定。 性能 内存 持久化 日志
redis_bigkey
标签
TagDescriptiondb_nameDB name.hostHostname.keyKey name.key_typeKey type.serverServer addr.service_nameService name.
字段列表
MetricDescriptionTypeUnitkeys_sampledSampled keys in the key space.int-value_lengthKey length.int-
redis_hotkey
标签
TagDescriptiondb_nameDB name.hostHostname.keyKey name.serverServer addr.service_nameService name.
字段列表
MetricDescriptionTypeUnitkey_countKey count times.int-keys_sampledSampled keys in the key space.int-
redis_slowlog
Redis 慢查询命令历史这里我们将其以日志的形式采集。
标签
TagDescriptionhosthostmessagelog messageserverserverservice_nameService name
字段列表
MetricDescriptionTypeUnitcommandSlow commandintμsslowlog_95percentileSlow 95th percentile durationintμsslowlog_avgSlow average durationfloatμsslowlog_idSlow log unique idint-slowlog_maxSlow maximum durationintμsslowlog_medianSlow median durationintμsslowlog_microsCost timeintμs
备注 Redis 实例中暂无 slow log 数据。 监控器
一键开启如下监控 Redis 节点重启
检测 Redis 启动时间小于 10 分钟判定为 Redis 节点发生了重启。 Redis 节点失联 总结
Redis 的监控是实现可观测性建设必不可少的一环Redis 的可用性对于业务系统起着至关重要的作用。使用观测云可以支持采集 Redis 多种部署方式包括单机、主从、集群、哨兵等。配合观测云丰富的告警能力及时发现 Redis 问题处理解决对应的问题。