我将单个redis用于我的应用, 我的连接redis通过Spring MVC为我的backgroud服务器。 我使用像XXXX *这样的命令键来查询Redis DB中的密钥。 我的Redis DB只有20000条记录。 我发现CPU运行超过20%,查询延迟1000ms。 我该如何处理这个问题?
答案 0 :(得分:0)
Redis是单线程的。 KEYS
命令迭代所有键以匹配给定的模式,这需要花费大量时间,特别是当数据库中的键太多时。
同时,Redis被阻止,它无法处理任何新请求。因此,您的新查询将被延迟,直到KEYS
命令完成。
<强>解决方案强>:
用KEYS
命令替换SCAN
命令,并逐步迭代数据库中的密钥。