Max*_*ysh 16

这个问题很古老,但其他答案有点误导.Eric的答案与Redis完全无关.Pfreixes的答案基于个人假设而且完全错误.

实际上,使用GUID键(性能方面)相当安全,因为即使300多个字符键也不会对O(1)操作产生显着影响.检查此基准:名称长度是否会影响Redis的性能?.

如果您使用十六进制表示,GUID通常具有32-36个字符的长度.正如Evan Carrol在评论中注意到的,Redis字符串是二进制安全的,因此您可以使用二进制值并将密钥大小减小到128位(16个字符).具有这样长度的按键不会损害性能.

此外,文档建议对非常大的键使用散列函数:http://redis.io/topics/data-types-intro


小智 2

Redis使用哈希策略来存储所有键,每个键都使用哈希函数存储。所有关于键的 Redis 数据库性能都属于这个函数 - 或相关的东西。

原始密钥也被存储,以找出不同密钥之间未来的冲突,是的,大密钥可能会影响内存句柄和所有相关字段:内存碎片、缓存命中/未命中等......