在Redis中查找最大值-当前使用的内存太多

在Redis中查找最大值-当前使用的内存太多,redis,Redis,我有一个redis实例,它在内存中不断增长,以至于我的应用程序逻辑明显出了问题,我有成千上万个键,我想知道哪些是内存的最大用户。有没有一种技术可以解决这个问题?我认为解决的方法不是找出你的钥匙中哪一个是最大的,而是找出你的钥匙有什么特征,即它们持有什么样的数据 Redis不是关系数据库的替代品,它是一个互补层(非常重要和有用,但仍然是互补的)。您可以使用它以各种方式加速对应用程序中数据的访问。这意味着,在一天结束时,Redis可能不应该包括所有内容,而应该只包括最常用的数据和/或一般统计和聚合

我有一个redis实例,它在内存中不断增长,以至于我的应用程序逻辑明显出了问题,我有成千上万个键,我想知道哪些是内存的最大用户。有没有一种技术可以解决这个问题?

我认为解决的方法不是找出你的钥匙中哪一个是最大的,而是找出你的钥匙有什么特征,即它们持有什么样的数据

Redis不是关系数据库的替代品,它是一个互补层(非常重要和有用,但仍然是互补的)。您可以使用它以各种方式加速对应用程序中数据的访问。这意味着,在一天结束时,Redis可能不应该包括所有内容,而应该只包括最常用的数据和/或一般统计和聚合

我不知道您的应用程序的域,但请尝试首先查找密钥的过期时间。不常访问的密钥最终应该被删除

作为进一步的步骤,我将检查冗余密钥,也就是说,相同的数据以多种形式保存

注意:Redis中的冗余绝对没有问题,事实上,这是一种推荐的模式(使用Redis而不进行规范化,有利于提高每个给定查询的访问速度)。我想说的是,你可能会发现一些密钥在其他密钥的情况下是完全无用的,也就是说,它们不会增加任何速度优势,只会膨胀你的Redis数据库

尝试查看一些Redis GUI应用程序,它们可能有助于您探索运行时Redis实例:


谢谢,但我实际上只是在寻找一种方法来检查我在redis中没有装载10MG列表。为什么不手动运行所有列表键并测试每一个呢?您可以使用
LLEN
检查列表长度(#项),也可以进一步检索所有成员并计算其内部长度。我不担心性能,它只是为了调试你的系统。我基本上是在寻找一个不需要自己编写的工具。redis rdb工具非常完美。