• very simple NoSQL databáze
    • good for:
      • temporary data, data accessed via keys
      • session data, user profiles, preferences, shopping carts, cache etc.
    • bad for:
      • data with relations between each other
      • multi-key data
      • complex operations with data
      • need to access specific parts of the value
  • key = id, primary key
    • keys are:
      • real-world entities (email, birth number, login name)
      • automatically generated:
        • autoincrement - not suitable for peer-to-peer systems (there could be inconsistency issues, there is no central server to manage the increments)
        • complex keys (combinations of timestamps, node identifiers etc.) - used in practice
  • value = a binary object (a black box for the database system)
    • it is in general not able to access only some contents of the value (all or nothing)
  • simple model means:
    • great performance, easy scaling
    • BUT not for complex queries or complex data/relations
  • works like a hash table
    • keys and associated values
  • additional functionalities of key-value stores
    • expiration of key-value pairs (after defined time, objects are automatically removed)
    • key-value pair could be interconnected via links (and those could be traversed during querying)
    • collections of values could be stored as well