Redis 6.0.16中90k长度Key触发key too long错误的原因及配置疑问
Redis Key长度问题解答
1. Key大小限制能配置吗?
Redis官方规定Key的最大限制是512MB,这个值是硬编码在源码里的,没法通过配置文件修改。不过实际场景里几乎没人会用这么长的Key——过长的Key会占用更多内存、增加网络传输开销,完全不符合Redis的高效使用原则。
2. 为什么90k的Key会触发“key too long”错误?
这个错误根本不是Redis本身抛出的!大概率是你的客户端或者Redis前置的中间层(比如代理、网关)加了额外的长度限制:
- 你使用的Python redis客户端可能自带了Key长度校验逻辑,默认限制了Key的长度;
- 如果部署了Redis代理(比如Twemproxy、Redis Cluster Proxy),很多代理为了性能会把Key长度限制在几KB到几十KB区间;
- 检查是否安装了Redis第三方模块,或者有自定义Lua脚本对Key长度做了校验。
测试示例
生成90k长度Key的命令
len=90000 ch='#'; printf '%*s' "$len" | tr ' ' "$ch" > test_key
Python测试代码
r = redis.Redis() with open("test_key") as f: mykey = f.read() r.set(mykey, 1)
执行报错
redis.exceptions.ResponseError: key too long
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

