Detta kanske har att göra med din redis-serverkonfiguration.
Du kan köra MONITOR från redis cli på din värddator.
Vanligtvis ansluter du via cli till exempel:
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
Standardporten är 6379
Detta kommer att visa alla interaktioner med redis-servern, men kör inte detta eftersom det alltid körs, det har en prestandaträff men utmärkt för felsökning.
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]
Detta bör ge dig en indikation på problemet.
Du kan också köra INFO-kommandot från redis cli för att se serverstatistik och information som minnesanvändning.
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>
Använd också INCRBY-kommandot från din redis-klient i din kod, annars måste du öka ditt räknevärde innan du ställer in det, vilket inte stämmer överens med det asynkrona mönstret.
https://redis.io/commands/incrby
Jag tror att ditt problem beror på att detta är asynkront eller hur?
Så räkningarna är osynkroniserade när de publiceras eftersom vissa kan väntas innan andra gör det.
Hur som helst, du kanske vill försöka posta dem synkront för att se om det gör någon skillnad, då vet du att det är problemet och det skulle vara bättre att använda redis INCR-kommandona för detta ändamål.