PHP - Redis / Memcachedb / MongoDB o altro supporto di memorizzazione persistente contatore negozio
-
19-09-2019 - |
Domanda
Con contatore potrebbe essere di pagine viste, download, numero dei voti, ecc In sostanza, non molto i dati 'critiche'.
Qual è il modo 'migliore' per memorizzare quelle informazioni? MySQL non è una buona opzione. Quello che voi ragazzi usare?
Soluzione
Credo che vorrei andare con Redis, perché:
- Antirediz (il suo soprannome) è davvero attivamente sviluppando Redis . (Ogni volta che guardo il mio github cruscotto ha commesso qualche nuovo codice). Egli ora sta sviluppando Redis tempo pieno grazie a VMware
- Redis è casualmente persistente così le prestazioni sono kickass (primo utilizza solo memoria che è veloce).
- Redis ha un incremento operazione che è necessario.
- Redis ha un un sacco buoni librerie PHP. V'è anche uno che è scritto come un href="http://github.com/owlient/phpredis" rel="nofollow noreferrer"> C estensione quindi ha davvero buone prestazioni. Redis sito ha anche una panoramica fuori queste estensioni. Alcuni sono codice PHP puro (eseguire un litle ma più lento, ma sono più facili da configurare).
Altri suggerimenti
MongoDB con upserts è grande per questo.
Se sei memorizzare qualcosa come:
{ "url" : "www.example.com", "pageviews" : 0 }
Puoi pagine visualizzate atomicamente incremento molto velocemente con l'atomica operazione $ inc:
db.downloads.update({'url' : 'www.example.com'}, {'$inc' : {pageviews : 1}})
Se si utilizza upserts, non si controlla se esiste un documento prima di aggiornarlo. Ad esempio, se si dice:
db.downloads.update({'url' : 'www.example.com'}, {'$inc' : {pageviews : 1}}, {"upsert" : true})
il documento con l'url www.example.com verrà creato se non esiste (con pagine visualizzate impostati a 1) o, se esiste, saranno incrementati pagine visualizzate. Questo significa che non devi preoccuparti di pre-popolamento della collezione.
I famosi visualizzare i contatori del 1990 utilizzati file semplici per memorizzare il numero. Se tutto ciò che serve è solo per memorizzare un numero, tutto è abbastanza buono.
Direi APC o memcached sono buone scelte.