Il mio caso d'uso per Redis è appropriato?

3

Sto scrivendo un'app web che è fondamentalmente eventi di Facebook, ma più improvvisata e in tempo reale. Un utente può creare un evento e altri utenti online nell'area (raggio di 30 miglia) dovrebbero immediatamente vedere l'evento. Gli utenti possono registrarsi per gli eventi e l'host dovrebbe vedere gli inviti. L'host può annullare l'evento e tutti i partecipanti devono ricevere un avviso. Non è necessario alcun polling o aggiornamento lungo e molto probabilmente userò websockets (socket.io)

Questo concetto è semplice da descrivere, ma ho mal di testa solo a pensare a come esattamente questo può essere implementato. Soprattutto se un utente ha più sessioni ..

Redis ha catturato la mia attenzione di recente. Posso ricevere suggerimenti sul mio piano di implementazione, per assicurarmi che non stia seguendo un percorso pazzo?

  1. Tengo traccia delle posizioni degli utenti registrati in Redis.
  2. L'utente crea un evento e lo memorizzo in Redis.
  3. trovo tutti gli utenti che si trovano nel raggio di 30 miglia dell'evento e li avvisano tramite socket.io
  4. L'host e gli utenti che si iscrivono all'evento vengono inseriti in Redis pub / sub per qualsiasi tipo di notifica.
  5. Una volta che l'evento è finito, rimuovo l'evento da Redis e memorizzo in MySQL

La mia implementazione è fattibile? Ha senso usare Redis qui?

    
posta Eric Guan 30.05.2017 - 17:57
fonte

1 risposta

3

La cache può essere utilizzata e aiuterà qui come molti clienti per eventi che cambieranno raramente. Anche se cambiano:

  1. aggiornamento di una chiave o
  2. l'eliminazione e l'aggiunta pigramente, funziona bene.

    Per esattamente come dovresti farlo - esperimento. Tuffati con l'unico avvertimento: imparerai e cambierai. Abbraccia questa idea e corri con essa. Ho visto codice che memorizza lo stesso evento (non di fb ma di altri domini) due volte - in un elenco e con una chiave diversa per singoli eventi ... solo dire dipende dal tuo caso d'uso e dalla quantità di memoria che hai.

Non mi preoccuperei della memoria ora. Basta risolvere i tuoi problemi e scrivere test di tipo jmeter per vedere come funziona.

Più tardi puoi optomize e / o ottenere più spazio sul server.

    
risposta data 30.05.2017 - 20:10
fonte

Leggi altre domande sui tag