sql >> Base de Datos >  >> NoSQL >> Redis

Redis no se actualiza cuando hay muchas solicitudes a la vez

Esto puede tener algo que ver con la configuración de su servidor redis.

Puede ejecutar MONITOR desde redis cli en su máquina host.

Por lo general, se conecta a través de la cli, por ejemplo:

https://redis.io/topics/rediscli

redis-cli -h <your server ip> -p <your server port> -a <if you have a server password enabled>

$ redis-cli -h host -p port -a password

El puerto predeterminado es 6379

Esto mostrará todas las interacciones con el servidor redis, sin embargo, no ejecute esto ya que siempre tiene un impacto en el rendimiento, pero es excelente para la resolución de problemas.

https://redis.io/commands/monitor

 $ redis> monitor
 1339518083.107412 [0 127.0.0.1:60866] "keys" "*"
 1339518087.877697 [0 127.0.0.1:60866] "dbsize"
 1339518090.420270 [0 127.0.0.1:60866] "set" "x" "6"
 1339518096.506257 [0 127.0.0.1:60866]

Esto debería darle una indicación del problema.

También puede ejecutar el comando INFO desde redis cli para ver las estadísticas del servidor e información como el uso de la memoria.

https://redis.io/commands/info

redis> INFO
 # Server 
 redis_version 999.999.999
 redis_git_sha1:3c968ff0
 redis_git_dirty:0
 redis_build_id:51089de051945df4
 redis_mode:standalone 
 os:Linux 4.8.0-1-amd64 x86_64 
 arch_bits:64 
 multiplexing_api:epoll
 atomicvar_api:atomic-builtin 
 gcc_version:6.3.0
 process_id:8394
 </snip>

También use el comando INCRBY de su cliente redis en su código; de lo contrario, deberá incrementar su valor de conteo antes de configurarlo, lo que no es consistente con el patrón asíncrono.

https://redis.io/commands/incrby

Creo que tu problema es porque esto es asíncrono, ¿verdad?

Por lo tanto, los recuentos no están sincronizados cuando se publican, ya que es posible que algunos se esperen antes que otros.

De cualquier manera, es posible que desee intentar publicarlos sincrónicamente para ver si eso hace una diferencia, entonces sabe que ese es el problema y sería mejor usar los comandos redis INCR para este propósito.