Redis
 sql >> Database >  >> NoSQL >> Redis

Redis replica attivo-attivo

Redis v2.8.3 non supporta le configurazioni multi-master. La vera domanda, tuttavia, è perché vuoi impostarne uno? In altre parole, quale sfida/problema stai cercando di risolvere?

Sembra che la sfida che stai cercando di risolvere sia come ridurre il carico di rete (ne parleremo più avanti) eliminando le letture in rete. Poiché Redis non è (ancora) multi-master, l'unico modo per farlo è configurare ogni app server con un master e uno slave (all'altro master), ovvero un totale di 4 istanze Redis (e il doppio della RAM).

Lo scenario semplice è quando ogni app aggiorna solo un sottoinsieme di chiavi del database che si escludono a vicenda. In tale scenario, questo tipo di configurazione potrebbe effettivamente essere vantaggioso (almeno a breve termine). Se, tuttavia, entrambe le app possono toccare tutti i tasti o se anche solo una chiave è "condivisa" per le scritture tra le app, dovrai inserire la logica di blocco/risoluzione dei conflitti/ecc... nelle tue app per consolidare il master locale e differenze tra gli schiavi (e questo potrebbe essere un po' eccessivo). In entrambi i casi, tuttavia, ti ritroverai con troppi (ovvero più di 1) Redise, il che significa almeno un maggiore sforzo amministrativo.

Tieni inoltre presente che colocando app e database sullo stesso server ti stai impostando per un errore di scalabilità quasi certo. Cosa accadrà quando avrai bisogno di più risorse di calcolo per le tue app o Redis? Come aggiungerai un altro server app al mix?

Il che mi riporta al problema reale che stai cercando di risolvere:il carico di rete. Perché esattamente questo è un problema? Le tue app sono così pesanti o la rete è così sottile che sei disposto a fare di tutto? O forse la latenza è il problema che vuoi risolvere? Comunque sia, ti ho consigliato di prendere in considerazione un design collaudato nel tempo, ovvero separare Redis dalle app e metterlo sulle proprie risorse. È vero, la rete ti colpirà in faccia e dovrai aggirarla / con essa (che è quello che fanno tutti gli altri). D'altra parte, avrai maggiore flessibilità e controllo sulla tua configurazione molto più semplice e questo, nel mio libro, è un enorme vantaggio.