go-redis模块自带连接池,所有参数都是可选的 poolsize 连接池的大小
https://blog.csdn.net/pengpengzhou/article/details/105385666
redis 命中率是80%
但是读写比接近1:1 。为啥呢,看strings 监控
发现原因:写的qps 统计的是setEX,读的qps 统计的是mGET
如果mGET一次是5个key的话,那么应该是5:1
只要执行 redis-cli info 命令,就可以了解 redis 的一个状态了,而且指标比较全面了
connected_clients:68 #连接的客户端数量
used_memory_rss_human:847.62M #系统给redis分配的内存
used_memory_peak_human:794.42M #内存使用的峰值大小
total_connections_received:619104 #服务器已接受的连接请求数量
instantaneous_ops_per_sec:1159 #服务器每秒钟执行的命令数量
instantaneous_input_kbps:55.85 #redis网络入口kps
instantaneous_output_kbps:3553.89 #redis网络出口kps
rejected_connections:0 #因为最大客户端数量限制而被拒绝的连接请求数量
expired_keys:0 #因为过期而被自动删除的数据库键数量
evicted_keys:0 #因为最大内存容量限制而被驱逐(evict)的键数量
keyspace_hits:0 #查找数据库键成功的次数
keyspace_misses:0 #查找数据库键失败的次数
edis 有个很好用的功能,就是类似于 mysql 的慢日志。在出现问题的时候,方便我们查看哪里阻塞了。
Slow log 是 Redis 用来记录查询执行时间的日志系统,查询执行时间指的是不包括像客户端响应 (talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间。
另外,slow log 保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启 slow log 而损害 Redis 的速度。
设置 SLOWLOG
Slow log 的行为由两个配置参数 (configuration parameter) 指定,可以通过改写 redis.conf 文件或者用 CONFIG GET 和 CONFIG SET 命令对它们动态地进行修改。
第一个选项是 slowlog-log-slower-than ,它决定要对执行时间大于多少微秒 (microsecond,1 秒 = 1,000,000 微秒) 的查询进行记录。
例子 1:
执行以下命令将让 slow log 记录所有查询时间大于等于 100 微秒的查询:
CONFIG SET slowlog-log-slower-than 100
例子 2:
记录所有查询时间大于 1000 微秒的查询:
CONFIG SET slowlog-log-slower-than 1000
另一个选项是 slowlog-max-len ,它决定 slow log 最多能保存多少条日志, slow log 本身是一个 FIFO 队列,当队列大小超过 slowlog-max-len 时,最旧的一条日志将被删除,而最新的一条日志加入到 slow log,以此类推。
例子 3:
让 slow log 最多保存 1000 条日志:
CONFIG SET slowlog-max-len 1000
查看 slow log
要查看 slow log ,可以使用 SLOWLOG GET 或者 SLOWLOG GET number 命令,前者打印所有 slow log ,最大长度取决于 slowlog-max-len 选项的值,而 SLOWLOG GET number 则只打印指定数量的日志,最新的日志会最先被打印。
清空日志
使用命令 SLOWLOG RESET 可以清空 slow log。
https://testerhome.com/topics/16461
https://www.jianshu.com/p/68485d5c7fb9/
redis-cli 提供的 Monitor 命令,直接使用这个就可以监控执行的大部分 redis 命令,之所以说是大部分,是因为有一些命令如:config 出于安全原因是不会记录的。
Monitor 是调试用的命令
Redis-cli#
使用redis-cli连接到redis服务器
redis-cli -h [redis server ip/host] -p [redis server port] [-a accessKey]
redis-cli monitor
$ telnet localhost 6379
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
MONITOR
+OK
由于 MONITOR 命令返回 服务器处理的所有的 命令, 所以在性能上会有一些消耗.
https://www.cnblogs.com/weihanli/p/monitor-redis-command.html