sql >> Databáze >  >> NoSQL >> Redis

Redis jak uložit asociativní pole? Set nebo Hash nebo List?

Můžete použít SET a Hash a SORT v kombinaci

redis 127.0.0.1:6379> HMSET TEST_12345 name "Post A" val2 "Blah Blah" val3 "Blah Blah Blah"
OK
redis 127.0.0.1:6379> HMSET TEST_54321 name "Post B" val2 "Blah Blah" val3 "Blah Blah Blah"
OK
redis 127.0.0.1:6379> HMSET TEST_998877 name "Post C" val2 "Blah Blah" val3 "Blah Blah Blah"
OK
redis 127.0.0.1:6379> SADD All_keys TEST_12345 TEST_54321 TEST_998877
(integer) 3
redis 127.0.0.1:6379> HGETALL TEST_12345

ZÍSKÁNÍ 1 HASH:

redis 127.0.0.1:6379> HGETALL TEST_12345
1) "name"
2) "Post A"
3) "val2"
4) "Blah Blah"
5) "val3"
6) "Blah Blah Blah"

ZÍSKEJTE VŠECHNY HASH

redis 127.0.0.1:6379> SORT All_keys BY nosort GET *->name GET *->val2 GET *->val3
1) "Post A"
2) "Blah Blah"
3) "Blah Blah Blah"
4) "Post B"
5) "Blah Blah"
6) "Blah Blah Blah"
7) "Post C"
8) "Blah Blah"
9) "Blah Blah Blah"

Pokud nechcete používat řazení, můžete použít Načíst všechny názvy klíčů z SET pomocí SEMBERS a poté použijte Redis Pipeline k načtení všech klíčů



  1. Seskupit MongoDB podle vnitřních prvků pole

  2. Fronta Laravel 5.5 redis je příliš pomalá

  3. Operátoři agregace MongoDB pro díly s datem vrácení

  4. Pymongo / MongoDB:vytvořit index nebo zajistit index?