我正在编写一个JAR文件,该文件从Oracle数据库中获取大量数据并存储在Redis中。正确存储了详细信息,但我在jar中定义的set key和hash key在redis db中受到限制。应该有近200个Hash和300个设置键。但是,在redis中提供密钥*时,我只获得了29个密钥。请帮助您了解如何增加redis内存或散列的限制或设置密钥存储大小。
注意:我改变了 hash-max-zipmap-entries 1024 hash-max-zipmap-value 64 手动在redis.conf文件中。但是,它没有反映出来。它需要改变的地方吗?
答案 0 :(得分:2)
除了内存大小(检查maxmemory和maxmemory-policy参数)之外,可以放入Redis实例中的set或hash键数量没有限制。
hash-max-zipmap-entries参数完全不相关:它只控制内存优化。
我建议使用MONITOR命令检查哪些查询发送到Redis实例。
答案 1 :(得分:0)
hash-max-zipmap-value使哈希值中的哈希键值对系统保持优化,因为在这些哈希值中搜索密钥遵循分摊的N,因此更长的密钥将反过来增加系统的延迟。
这些设置在redis.conf中可用。
如果输入的密钥多于指定的数字,那么散列密钥值对将在内部转换为基本密钥值对结构,从而无法在内存中提供哈希提供的优势。