redis重要参数

redis重要参数,第1张

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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9423725.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存