Redis – DB – Caching – Queue

Di recente ho approfondito molto l’utilizzo del database REDIS. Redis è open source ed è stato sviluppato sia per meccanismi di caching, queue anche per strutturare code di processi ed effettuare lo storage di architetture versatili capaci di rispondere all’ordine del millisecondo.

Redis è molto diverso dai DB che effettuano lo storage su disco non solo per tempi di risposta che coinvolgono operazioni di lettura e scrittura ma anche per la flessibilità delle strutture che possiamo salvare, che possono essere:

  • Stringhe;
  • Liste;
  • Set, raccolte non ordinate di stringhe con capacità di intersezione, unione e differenza di altri tipi set;
  • Sorted Set (set memorizzati): set ordinati per valore;
  • Hash: una struttura di dati per lo storage di un elenco di campi e valori
  • Ed altro ancora.

Ho utilizzato Redis DB principalmente per lo storage di HashSet relativamente ad una coda di processi in esecuzione su di un proxy remoto.
Mi spiego meglio ho un meccanismo concorrente che si ritiene occupato quando uno o più processi sono inseriti nel db a modi hashset, libero quando questi processi vengono rimossi.
Vi chiederete perché ho utilizzato un hashset, perché l’hashset è un pò un similare al concetto di chiave-valore ragion per cui posso dire che l’utente X ha inserito la chiave Y nel DB in memory, ma al contempo lo stesso potrebbero richiedere al semaforo Redis di inserire un processo Z, sarà poi la logica della queue a sostenere se può compiere o meno questa azione.

Vi elenco alcune istruzioni che lanciate dal redis-cli possono agevolgarci il lavoro con gli hashset, che ritengo la più efficente strutturata di memorizzazione in Redis.

redis db

REDIS BB – CACHING

Istruzioni di aiuto ai meccasimi connessi con Hash Set di Redis

  1. Entrare in esecuzione su container redis redis-cli;
  2. Creazione di un db di tipo hashset
  3. Inserimento nella coda di una coppia chiave-valore HSET db_name key “value”
  4. Lettura di una hset in redis HGET db_name key
  5. Recupero di tutte le chiavi memorizzate nel DB di Redis HKEYS db_name
  6. Lettura di tutte i valori memorizzati nell’hashset HVALS db_name
  7. Visualizzazione di tutte le key con i relativi valori nell’hashset HGETALL db_name
  8. Cancellazione di una chiave HDEL db_name key
  9. Numero di chiavi memorizzate nel DB Redis HLEN db_name
  10. Cancellare tutti gli Hash SET nel DB Redis FLUSHALL

Queste istruzioni sono state di aiuto per implementare una queue di processi, implementando così una sorta di semaforo capace di schedulare in brevi tempi processi e task in capo a determinati utenti, ritengo pertanto REDIS un DB in memory molto versatile semplice da istanziare ed utilizzare per implementare complessi meccanismi concorrenti (come ad esempio le queue) senza grossi dispendi di tempo e di complessità 🙂

Redis – DB – Caching – Queue ultima modidfica: 2020-03-29T12:54:27+02:00 da admin
Posted in: PHP, SOA

By on 29 Marzo 2020

Tagged: , , , , , , , ,