点一下关注吧!!!非常感谢!!持续更新!!!
目前已经更新到了:
- Hadoop(已更完)
- HDFS(已更完)
- MapReduce(已更完)
- Hive(已更完)
- Flume(已更完)
- Sqoop(已更完)
- Zookeeper(已更完)
- HBase(已更完)
- Redis (正在更新...)
章节内容
上节完成了的内容如下:
- Redis通过Lua功能进行扩展
- Lua下载安装
- Lua在Redis中的使用案例(多个)
MySQL 中有慢查询日志,在 Redis 中,也有慢查询日志,可以用于监视和优化查询。
慢查询设置
redis 使用列表存储慢查询的日志,采用队列的方式:FIFO
在 redis.conf 中进行配置:
shell
#执行时间超过多少微秒的命令请求会被记录到日志上 0 :全记录 <0 不记录
slowlog-log-slower-than 10000
#slowlog-max-len 存储慢查询日志条数
slowlog-max-len 128
查询日志
为了方便测试,可以通过暂时设置的方式,将检查的阈值调低。
shell
config set slowlog-log-slower-than 0
config set slowlog-max-len 2
此时我们的操作基本上都会变成慢操作:
shell
set name wzk
set age 123
get name
get age
我们查看慢日志内容:
shell
slowlog get
日志可以用来解决以下问题:
- 问题诊断:当系统或应用程序出现问题时,日志提供的信息,帮助开发人员追踪和定位问题的根本原因。
- 性能优化:通过分析日志数据,可以了解系统的性能瓶颈和潜在问题,并采取相应的措施来优化系统的性能。
定位与处理
使用 slowlog get 可以获得执行较慢的 redis 命令,针对该命令可以进行优化:
- 尽量使用短的Key,对于Value有些也可以精简,能用int就int
- 避免 key *,hgetall 这种操作
- 减少大key的获取,打散成小key
- 将 RDB模式 转换为 AOF模式 RDB会FORK子进程
- 想要一次添加多条数据时可以使用管道
- 尽可能使用HASH存储
- 尽量限制下Redis使用的内存大小,可以避免Redis使用swap分区或OOM错误
监视器
Redis 客户端可以通过执行 MONITOR 命令将自己变成一个监视器,实时接受并打印服务器当前处理的命令请求的相关信息。
此时,当其他客户端向服务端发送一条命令时,服务器除了会处理这条命令外,还会将这条命令请求的信息发送给所有监视器。
客户端1
shell
./redis-cli
monitor
客户端2
shell
./redis-cli
set name:001 wzk
set name:002 kangkang
set age:001 12
set age:002 33
监视平台
对Redis进行监视,这里有几个选择方案:
- Grafana 开箱即用的可视化工具,具有功能齐全的度量仪表盘和图形编辑器,有灵活丰富的图形化选项,可以混合多种风格,支持多个数据源特点。
- Prometheus 开源的服务监控系统,它通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上。
- RedisExporter 为Prometheus提供了redis指标的导出,配合Prometheus以及grafana进行可视化监控。