我需要做的是存储一对一的映射。数据集包含大量相同类型的键值对(10M +)。例如,可以使用Java中的HashMap对象的单个实例来存储此类数据。
第一种方法是存储许多键值对,如下所示:
SET map:key1 value1 ... SET map:key900000 value900000 GET map:key1
第二种选择是使用单个“哈希”:
HSET map key1 value ... HSET map key900000 value900000 HGET map key1
Redis的哈希有一些方便的命令(HMSET,HMGET,HGETALL等),他们不污染密钥空间,所以这看起来像一个更好的选择。但是,使用此方法时是否有任何性能或内存方面的考虑?
HMSET
HMGET
HGETALL
是的,正如Itamar Haber所说,您应该阅读redis内存优化指南。但您也应该记住以下几件事:
hash-max-zipmap-entries
hash-max-zipmap-value
了解以下内容可能很有用: