点一下关注吧!!!非常感谢!!持续更新!!!
目前已经更新到了:
Hadoop(已更完)
HDFS(已更完)
MapReduce(已更完)
Hive(已更完)
Flume(已更完)
Sqoop(已更完)
Zookeeper(已更完)
HBase(已更完)
Redis (正在更新…)
章节内容
上节完成了的内容如下:
Redis通过Lua功能进行扩展
Lua下载安装
Lua在Redis中的使用案例(多个)
MySQL 中有慢查询日志,在 Redis 中,也有慢查询日志,可以用于监视和优化查询。
慢查询设置
redis 使用列表存储慢查询的日志,采用队列的方式:FIFO
在 redis.conf 中进行配置:
#执行时间超过多少微秒的命令请求会被记录到日志上 0 :全记录 <0 不记录 slowlog-log-slower-than 10000 #slowlog-max-len 存储慢查询日志条数 slowlog-max-len 128
查询日志
为了方便测试,可以通过暂时设置的方式,将检查的阈值调低。
config set slowlog-log-slower-than 0 config set slowlog-max-len 2
此时我们的操作基本上都会变成慢操作:
set name wzk set age 123 get name get age
我们查看慢日志内容:
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
./redis-cli monitor
客户端2
./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进行可视化监控。