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.