12

使用 GUID 或 ulong 键会影响 Redis DB 性能吗?

类似:名称长度会影响 Redis 中的性能吗?

4

2 回答 2

22

这个问题是一个老问题,但其他答案有点误导。Eric 的回答与 Redis 完全无关。Pfreixes 的回答是基于个人假设,完全是错误的。

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

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

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

于 2015-04-27T18:23:19.977 回答
2

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

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

于 2012-06-06T10:19:17.277 回答