
Redis参数
Redis参数可以通过“/redis-cli -p 6379 info”命令来查看,下面仅列出重要参数及相关描述。
“clients:已连接客户端信息,包含以下域:
“connected_clients”:已连接客户端的数量
“client_longest_output_list”:当前连接的客户端当中,最长的输出列表
“client_longest_input_buf”:当前连接的客户端当中,最大输入缓存
“blocked_clients”:正在等待阻塞命令
“memory:内存信息,包含以下域:
“used_memory”:由Redis分配器分配的内存总量,以字节(byte)为单位
“used_memory_human”:以可读格式返回Redis分配的内存总量
“used_memory_rss”:从 *** 作系统的角度,返回Redis分配的内存总量
“used_memory_peak”:Redis的内存消耗峰值,以字节为单位
“used_memory_peak_human”:以可读格式返回Redis的内存消耗峰值
“used_memory_lua”:Lua引擎所使用的内存大小,以字节为单位
“mem_fragmentation_ratio”:“used_memory_rss”和“used_memory”之间的比率
“mem_allocator”:编译时指定的Redis使用的内存分配器
Redis 的特性决定了它本身就不适合做统计方面的 *** 作。因为没有像 SQL 一样的结构化查询语言。这里为你提供一种解决思路,但是需要修改你的数据组织方式:
在 redis 中,如果的确有统计的需求,可以使用 SortedSet 有序集合。有序集合中每个 key 对应一个 score,可以根据 score 来排序取值。
举个例子:
redis> ZADD age 10 jack
(integer) 0
redis> ZADD age 15 tom
(integer) 0
redis> ZADD age 25 peter
(integer) 0
上面的代码为 age 这个有序集合插入了三条数据,以三人的 age 作为 score。如果你想统计年龄区间在10-20之间的,如下所示:
ZRANGEBYSCORE age 10 20
如果说你要存储的数据不是简单的字符串,没有办法直接作为 key 来存储,可以有以下两种方案解决:
将数据转为 json 格式的字符串作为 key,取出时再将 json 字符串还原为代码可支持的格式。比如在 python 中就可以使用 jsondumps 将字典转为字符串,从 redis 取出时再使用jsonloads还原。
以 id 作为 key,然后再使用另外的 hash 或者其他数据结构来存储实际用户信息。这样就需要先根据统计字段查出 id,再根据 id 去查完整信息,需要有两次查询。
但是以上的解决方案只适用于你只有一个用来统计的字段,比如你提到的年龄。如果你有多种统计需求,理论上来说肯定也有解决方案,但是我觉得你应该考虑一下是否真的需要使用 redis 来完成这个工作。毕竟 redis 的使用场景限制了它无法做像 SQL 一样复杂多样的统计。你可以考虑一下其他的 NoSQL,比如 mongodb。
根据你的使用场景选择工具才是最明智的,而不是手里有把锤子就看什么都是钉子。
redis版本:redis-cli 325
架构:传统主从架构
给一台运行一段时间的redis主库增加一台从库,增加后发现以下异常:
主库截图
从库截图
通过key数量这两个差值大概可以定位到问题出现在过期key
主库截图
从库截图
以上就是关于redis重要参数全部的内容,包括:redis重要参数、怎么统计redis的hash中的某个字段个数,在线等、redis主从key数量不一致解惑1等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)