【发布时间】:2023-03-11 18:14:01
【问题描述】:
使用 GUID 或 ulong 键会影响 Redis DB 性能吗?
【问题讨论】:
-
这个链接有性能基准,接受的答案说不重要"stackoverflow.com/questions/6320739/…
标签: redis
使用 GUID 或 ulong 键会影响 Redis DB 性能吗?
【问题讨论】:
标签: redis
这个问题是一个老问题,但其他答案有点误导。 Eric 的回答与 Redis 完全无关。 Pfreixes 的回答是基于个人假设,完全是错误的。
事实上,使用 GUID 键(性能方面)相当安全,因为即使是 300 多个字符的键也不会显着影响 O(1) 操作的性能。检查此基准:Does name length impact performance in Redis?。
如果您使用十六进制表示,GUID 通常有 32-36 个字符的长度。正如 Evan Carrol 在 cmets 中所注意到的,Redis 字符串是二进制安全的,因此您可以使用二进制值并将密钥大小减少到 128 位(16 个字符)。这样长度的键根本不会影响性能。
此外,文档建议对非常大的键使用散列函数:http://redis.io/topics/data-types-intro
【讨论】:
Redis 使用哈希策略存储所有键,每个键都使用哈希函数存储。所有关于键的 Redis db 性能都属于这个功能 - 或相关的东西。
原始键也被存储以找出不同键之间的未来冲突,是的,大键可能会影响内存句柄和所有相关字段:内存碎片、缓存命中/未命中等...
【讨论】: