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

Filtrační prvky v Redis

Jak implementujete poslední schéma v Redis? Je to možné?

Redis je bez schématu . Říkejme tomu, co potřebujete, přístup k ukládání dat .

Jedním z možných přístupů je použití HSET nebo HMSET přidat tyto objekty JSON podle id, kde jejich id je klíč a text JSON je hodnota . Tento hash budeme nazývat users:byid .

Toto je první část problému. Nyní můžete získat objekty podle id .

Dalším problémem je, že chcete získat objekty v rozsahu, kterému říkáte hodnocení . Abyste toho dosáhli, musíte své objekty uložit do setříděné sady pomocí ZADD . Seřazené sady jsou seřazeny podle skóre a položky jsou uloženy se skóre . Zní to perfektně pro váš případ použití!

Ve skutečnosti budete ukládat ID objektů v celé tříděné sadě:

zadd users:byranking 10 1 5 2

... kde 10 je skóre (tj. vaše skutečná hodnota hodnocení) a 1 id a tak dále.

Jak tedy filtrujete položky podle hodnocení? Pomocí ZRANGEBYSCORE :

  • Podle pořadí mezi 0 a 10, kromě 10. zrangebyscore users:byranking 0 (10
  • Podle hodnocení mezi 0 a 10, včetně 10. zrangebyscore users:byranking 0 10

Takzvaný ZRANGEBYSCORE vám poskytne ID získaných uživatelů. Jak získáte jejich text JSON? Pomocí HMGET :

 HMGET users:byid 1 2

...což získá oba uživatele s id 1 a 2 , pokud 10 hodnocení je včetně.




  1. Spring Data Mongo Repository::Společná sdílená metoda pro všechny problémy Repo

  2. Expire time express a redis session

  3. Uložte relaci uživatele v Redis s ASP.NET Core v Azure

  4. Příkaz Redis pro získání všech dostupných klíčů?