PHP - Redis / Memcachedb / mongodb u otro almacenamiento persistente para almacenar contador

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

  •  19-09-2019
  •  | 
  •  

Pregunta

Por el contador podría ser páginas vistas, descargas, número de votos, etc. Básicamente, no muy datos 'críticos'.

¿Qué es la 'mejor' para almacenar los datos? MySQL no es una buena opción. ¿Qué utilizan los chicos?

¿Fue útil?

Solución

Creo que iría con Redis, ya que:

  • Antirediz (su apodo) es realmente desarrollando activamente Redis . (Cada vez que miro a mi tablero github que ha cometido algún código nuevo). Ahora se está desarrollando Redis de tiempo completo gracias a VMware
  • Redis es finalmente persistente por lo que el rendimiento es kickass (primero sólo utiliza la memoria, que es rápido).
  • incremento operación que necesita.
  • Redis tiene un mucho buenas bibliotecas de PHP. También hay una que está escrito como una href="http://github.com/owlient/phpredis" rel="nofollow noreferrer"> C extensión por lo que tiene muy buen rendimiento. Redis página web también tiene una visión general de estas extensiones. Algunos son código PHP puro (ejecutar un litle pero más lento, pero son más fáciles de configurar).

Otros consejos

MongoDB con upserts es ideal para esto.

Si usted está almacenando algo como:

{ "url" : "www.example.com", "pageviews" : 0 }

Puede páginas vistas atómicamente incremento muy rápidamente con la operación atómica $ inc:

db.downloads.update({'url' : 'www.example.com'}, {'$inc' : {pageviews : 1}})

Si utiliza upserts, usted no tiene que comprobar si existe un documento antes de actualizarlo. Por ejemplo, si usted dice:

db.downloads.update({'url' : 'www.example.com'}, {'$inc' : {pageviews : 1}}, {"upsert" : true})

el documento con la URL www.example.com se creará si no existe (con páginas vistas puestos a 1) o, si existe, se incrementarán de páginas vistas. Esto significa que usted no tiene que preocuparse de rellenar previamente la colección.

Las famosas ver los contadores de la década de 1990 utilizan archivos simples para almacenar el número. Si todo lo que necesita es sólo para almacenar un número, nada es lo suficientemente bueno.

Yo diría APC o memcached son buenas opciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top