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

Redis - Jak souvisí klíč HASH a SET a ZSET na uložení CrudRepository?

Než odpovíte, nevadí vám sdílet svůj implementační kód RedisTemplate? (Nebo je to generováno anotací @RedisHash?) Sám jsem ve Spring-Data-Redis nový a neznal jsem anotaci @RedisHash a chci se na ni podívat.

V podstatě se zde děje to, že úložiště Spring-Data-Redis vkládá objekt Person do různých datových struktur nativně podporovaných Redis pro různé účely.

Redis podporuje různé datové struktury, například:

  1. HashRedis vytvoří mapu řetězcových polí a řetězcových hodnot, které reprezentují celý váš objekt Person. Pokud to uděláte HGETALL persons:{your person id} zobrazí všechna různá pole a hodnoty spojené s objektem vaší osoby

    HASH holding property values for id "c5cfd49d-6688-4b83-a9b7-be55dd1c36ad" in keyspace "persons"

  2. SetRedis vloží základní nezpracovaný řetězec a indexuje entity na základě jejich pole. Proto bylo mnoho SET operace ve vaší databázi Redis. Můžete vidět indexy firstName a lastName ve vaší datové sadě

    SET holding all ids known in the keyspace "persons"

  3. ZSetToto je operace Redis pro Sorted Sets datová struktura. Což je uspořádaná kolekce řetězců. Z dokumentace Redis

    In short with sorted sets you can do a lot of tasks with great performance that are really hard to model in other kind of databases.

Vypadá to, že Spring Data automaticky vloží data o umístění jako seřazenou sadu pro optimalizaci operací CRUD.

Více si můžete přečíst zde:

https://github.com/spring-projects/spring-data-examples/blob/master/redis/repositories/README.md

https://redis.io/topics/data-types




  1. jarní data mongodb skupina podle

  2. pymongo.errors.CursorNotFound:ID kurzoru '...' není na serveru platné

  3. Jak získat zpět novou hodnotu po aktualizaci ve vloženém poli?

  4. MongoDB:find and findOne s filtrováním vnořených polí