想象一下 REDIS-SERVER 的这两种情况:
(A)redis-cli> set "firstname lastname.AT.emailaddress.dot.com""1"
(B)redis-cli> setbit "firstname lastname.AT.emailaddress.dot.com"1 1
如果 100 万个不同的 key 与客户姓名/电子邮件一起存储。 用例是我想检查记录是否存在, 所以 在 (A) 的情况下
redis-cli> 获取“名字姓氏.AT.emailaddress.dot.com”
来自 REDIS 的回复将是> 1
在(B)的情况下
redis-cli> getbit "firstname lastname.AT.emailaddress.dot.com"1
来自 REDIS 的回复将是> 1
问题:
如果将一百万对键/值对全部保存在内存中查询,REDIS使用的内存量会有什么不同吗?
最佳答案
您应该使用解决方案 A。它更有意义,并且占用更少的内存,因为 Redis 对小整数有特殊的编码。在您的情况下,值(value)部分,即 “1”,不会花费额外的内存。
此外,另一种解决方案是使用 SET
来保存这些名称/电子邮件对:使用 SADD name-email "firstname lastname.AT.emailaddress.dot.com"
添加记录,并使用 SISMEMBER name-email "firstname lastname.AT.emailaddress.dot.com"
检查是否存在。
关于redis - 不同之处在于 REDIS 使用了多少内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52033543/