Was ich tun muss, ist ein One-to-One-Mapping zu speichern. Der Datensatz besteht aus einer großen Anzahl von Schlüssel/Wert-Paaren derselben Art (10M +). Zum Beispiel könnte man eine einzelne Instanz eines HashMap-Objekts in Java zum Speichern solcher Daten verwenden.Redis - der beste Weg, um eine große Karte (Wörterbuch) zu speichern
Der erste Weg, dies zu tun, ist eine Menge Schlüssel-Wert-Paare zu speichern, wie folgt aus:
SET map:key1 value1
...
SET map:key900000 value900000
GET map:key1
Die zweite Option ist ein einziges "Hash" zu verwenden:
HSET map key1 value
...
HSET map key900000 value900000
HGET map key1
Redis Hashes haben einige bequeme Befehle (HMSET
, HMGET
, HGETALL
, usw.), und sie verschmutzen den Schlüsselraum nicht, also sieht das wie eine bessere Option aus. Gibt es jedoch Überlegungen zur Leistung oder zum Speicher bei der Verwendung dieses Ansatzes?
Dies ist eigentlich eine empfohlene Verwendung Muster etwas RAM mit Redis speichern - http://redis.io/topics/memory-optimization#using-hashes-to-abstract-a-very-memory -efficient-plain-key-value-speichern-auf-top-of-redisere –