Memory Redis内存优化建议
我有一个Redis主人和两个奴隶。所有3个当前都在同一个unix服务器上。3个实例使用的内存约为3.5 G、3 G、3G。redis数据库中大约有275000个密钥。大约4000个是散列。1组有100000个值。1个列表中有275000个键。这是一个散列和集合的列表。服务器的总内存为16 GB。目前使用的是9.5 GB。持久性当前处于关闭状态。rdb文件通过强制后台保存每天写入一次。请提供任何优化建议。最大ziplist配置是当前默认值。优化哈希 首先,让我们看看散列。两个重要的问题-每个哈希中有多少个元素,以及这些哈希中最大的值是什么?如果满足以下条件,哈希将使用内存有效的ziplist表示:Memory Redis内存优化建议,memory,optimization,hash,redis,set,Memory,Optimization,Hash,Redis,Set,我有一个Redis主人和两个奴隶。所有3个当前都在同一个unix服务器上。3个实例使用的内存约为3.5 G、3 G、3G。redis数据库中大约有275000个密钥。大约4000个是散列。1组有100000个值。1个列表中有275000个键。这是一个散列和集合的列表。服务器的总内存为16 GB。目前使用的是9.5 GB。持久性当前处于关闭状态。rdb文件通过强制后台保存每天写入一次。请提供任何优化建议。最大ziplist配置是当前默认值。优化哈希 首先,让我们看看散列。两个重要的问题-每个哈希中
len(hash)
您应该根据您的数据增加redis.conf中的两个设置,但不要超过默认值的3-4倍
优化集
无法优化100000的集合,除非您提供有关用例的其他详细信息。不过,有些一般策略:
sadd
和scard
,那么您可能应该切换到hyperloglogsadd
和sismember
,那么您可能应该实现一个bloom过滤器,并使用它而不是set李>
您提供的用例细节很少。最好的节约来自为您的用例选择正确的数据结构。我鼓励您更新您的问题,提供更多关于您在哈希/列表/集中存储的内容的详细信息。我们进行了以下配置,这有助于将内存占用减少40%
list-max-ziplist-entries 2048
list-max-ziplist-value 10000
list-compress-depth 1
set-max-intset-entries 2048
hash-max-ziplist-entries 2048
hash-max-ziplist-value 10000
此外,我们增加了linux服务器上的RAM,这有助于解决Redis内存问题。将主服务器及其从属服务器托管在同一台服务器上有什么意义?是的,这是一个很好的观点。最初我们没有很多可用的服务器,因此我们在同一台服务器上设置了3个实例。但是现在我们已经将2个从属实例移到了不同的服务器上。谢谢!!这很有帮助!!