任何区别都是 REDIS 使用的内存量



想象一下 REDIS-SERVER 的以下两种场景:

(A(redis-cli>设置"名字 lastname.AT.emailaddress.dot.com"1">

(B(redis-cli> setbit "firstname lastname.AT.emailaddress.dot.com" 1 1

如果与客户名称/电子邮件一起存储了 100 万个不同的密钥。 用例是我想检查记录是否存在, 所以 在 (A( 的情况下

Redis-cli>获得"名字 lastname.AT.emailaddress.dot.com">

REDIS的回复将是>1

在 (B( 的情况下

Redis-cli> getbit "FirstName lastname.AT.emailaddress.dot.com" 1

REDIS的回复将是>1

问题:

如果所有一百万个键/值对都保留在内存中以供查询,REDIS 使用的内存量会有什么不同吗?

您应该使用解决方案 A。它更有意义,并且花费更少的内存,因为 Redis 对小整数具有特殊的编码。在您的情况下,值部分(即"1"(不会花费额外的内存。

此外,另一种解决方案是使用SET来保存这些名称/电子邮件对:使用SADD name-email "firstname lastname.AT.emailaddress.dot.com"添加记录,并使用SISMEMBER name-email "firstname lastname.AT.emailaddress.dot.com"检查是否存在。

最新更新