我正在与 redis 一起在 kubernetes 集群中运行 django 应用程序(wagtail)。这两个部分是通过 django-redis 连接起来的。这就是我的后端配置的样子
{
"BACKEND":"django_redis.cache.RedisCache",
"LOCATION":"redis://redis-service:6379/0",
"OPTIONS":{
"CLIENT_CLASS":"django_redis.client.DefaultClient",
"CONNECTION_POOL_KWARGS":{
"max_connections":1000
}
}
}
这工作得很好。我可以看到在 redis 中创建了密钥,并且由于 redis,应用程序也非常快。
现在真正的问题是应用程序偶尔会变慢一段时间。经过调查,我们发现真正的问题是在 redis 中创建了一个大小约为 90 MB 的密钥。处理这个关键应用程序需要一些时间并且速度会变慢。
为了进行比较,其他密钥小于 1 MB 总是只有 1 个密钥在一种类型的端点上随机创建,但并非总是如此。
解封后我尝试检查密钥的内容,它是正常的数据量,就像其他密钥一样。但运行
redis-cli --bigkeys
给出类似这样的输出
Biggest string found '":1:views.decorators.cache.cache_page.XXXXXXX.GET.9b37c27c4fc5f19eb59d8e8ba7e1999e.83bf0aec533965b875782854d37402b7.en-us.UTC"' has 90709641 bytes
有人见过类似的问题吗?无论如何要调试根本原因。
django-redis 版本“==4.12.1”
wagtail 版本“==2.11.1”
django 版本“==3.1.3”