database redis message queue - ghdrako/doc_snipets GitHub Wiki

Redis

5 podstawowych typów danych w Redis:

  • String
  • List
  • Set
  • Sorted set
  • Hash

Domyślnie Redis nie zapewnia trwałości przechowywanych danych. Oznacza to, że w przypadku awarii lub restartu systemu, dane w pamięci podręcznej zostaną utracone. Jednak Redis oferuje mechanizmy, takie jak zapisywanie na dysk (snapshotting) i dziennikowanie (logging), które pozwalają na zapewnienie pewnego stopnia trwałości danych.

  • AOF każda operacja zapisana w logu , po restarcie możliwe jest otworzenie danych w pamięci
  • Snapshot robiona jest kopia point in time , otworzenie danych do danego punktu w czasie

Redis ACL, skrót od listy kontroli dostępu, to funkcja umożliwiająca ograniczenie niektórych połączeń pod względem poleceń, które można wykonać, i kluczy, do których można uzyskać dostęp.

Redis oferuje opcjonalną obsługę protokołu TLS we wszystkich kanałach komunikacji, w tym w połączeniach klienckich, łączach replikacyjnych i protokole magistrali Redis Cluster

Redis skalowanie liniowe

jesli chodzi o skalowalnosc liniowa to:

Redis Smart Cache

biblioteka typu open source, która płynnie dodaje pamięć podręczną do dowolnej platformy, aplikacji lub mikrousługi zgodnej z JDBC, poprawiając wydajność zapytań, jednocześnie zmniejszając złożoność operacyjną – i nie trzeba zmieniać kodu aplikacji.

Ponieważ Redis jest bazą danych przechowywaną w pamięci, jednym z jej ograniczeń jest to, że ilość danych, które można pomieścić, zależy od dostępnej pamięci RAM komputera hosta. Aby pokonać to ograniczenie, dane muszą być rozproszone na wielu serwerach Redis

Redis Sentinel

system rozproszony składający się z wielu instancji Redis uruchomionych w trybie wartowniczym (sentinel mode) . Nazywamy te instancje Strażnikami (Sentinels). Grupa Sentinels monitoruje podstawową instancję Redis i jej repliki.

Redis zapewnia wysoką dostępność poprzez rozproszony system Redis Sentinel . Sentinel pomaga monitorować instancje Redis, wykrywać awarie i automatycznie przełącza role, umożliwiając w ten sposób wdrożenie Redis odporne na wszelkiego rodzaju awarie.

Zawiera monitorowanie instancji Redis (master i replik), obsługuje powiadamianie innych usług/procesów i automatyczne przełączanie awaryjne w celu promowania repliki do mastera. W przypadku gdy master ulegnie awarii zapewnia konfigurację dla klientów w celu wykrycia bieżącego mastera.

Redis Streams

Redis has a relatively new Streams feature that works great for message queues. It works by creating topics on the fly and adding messages to them with the XADD command. Reading the messages directly off the topic is possible with XREAD, so each subscriber can maintain its own state (the last read offset) to read through the messages. To avoid each subscriber having to maintain its current state, it makes more sense to create consumer groups using XGROUP CREATE, which are the equivalents of queues. Each message sent to a topic becomes available independently in each consumer group, which can then be subscribed to with XREADGROUP. Messages can be acknowledged with XACK.

The Redis Streams are automatically FIFO ordered using a timestamp that can either be auto-generated or manually set. This also means that messages can only be processed by one consumer agent at a time. To get around this limitation and work with many consumer agents in parallel, there's a separate non-streams-based pattern described in the documentation for RPOPLPUSH—basically LPUSH messages into a topic, and then RPOPLPUSH them into other lists, each representing a queue, or more accurately its work in progress. LREM works to delete/acknowledge the message.

Redis is an open source system that you can install and maintain yourself or find managed hosting for. Depending on how durable you need the system to be you might want to figure out the best persistence mechanism to use.

Apache