Yapmam gereken şey, bire bir eşleştirmeyi saklamak. Veri seti, aynı türden (10M +) çok sayıda anahtar-değer çiftinden oluşmaktadır. Örneğin, Java bu tür verileri depolamak için tek bir HashMap nesnesini kullanabilir.Redis - büyük haritayı saklamak için en iyi yol (sözlük)
Bunu yapmanın ilk yolu bu gibi anahtar-değer çiftlerinin birçok saklamaktır:
HSET map key1 value
...
HSET map key900000 value900000
HGET map key1
REDIS: İkinci seçenek tek bir "karma" kullanmaktır
SET map:key1 value1
...
SET map:key900000 value900000
GET map:key1
Hashes'in bazı uygun komutları vardır (
HMSET
,
HMGET
,
HGETALL
, vb.) Ve anahtar alanını kirletmezler, bu daha iyi bir seçenek gibi görünür. Bununla birlikte, bu yaklaşımı kullanırken herhangi bir performans veya hafıza konusu var mı?
Bu aslında REDIS bazı RAM kurtarmak için bir önerilen kullanım kalıptır - http://redis.io/topics/memory-optimization#using-hashes-to-abstract-a-very-memory -üzerinde-düz-anahtar-değer-store-on-top-of-redis –