PHP - Redis / Memcachedb / MongoDB o altro supporto di memorizzazione persistente contatore negozio

StackOverflow https://stackoverflow.com/questions/2035808

  •  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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top