Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

O Redis não atualiza quando muitas solicitações de uma só vez


Isso talvez tenha algo a ver com a configuração do seu servidor redis.

Você pode executar o MONITOR a partir do redis cli em sua máquina host.

Normalmente você se conecta através do cli por exemplo:

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

A porta padrão é 6379

Isso mostrará todas as interações com o servidor redis, no entanto, não execute isso como sempre, pois ele tem um impacto no desempenho, mas é ótimo para solução 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]

Isso deve fornecer uma indicação do problema.

Você também pode executar o comando INFO do redis cli para ver as estatísticas do servidor e informações como uso de memória.

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>

Use também o comando INCRBY do seu cliente redis em seu código, caso contrário, será necessário incrementar seu valor de contagem antes de defini-lo, o que não é consistente com o padrão assíncrono.

https://redis.io/commands/incrby

Acho que seu problema é porque isso é assíncrono certo?

Portanto, as contagens estão fora de sincronia quando são postadas, pois algumas podem ser aguardadas antes de outras.

De qualquer forma, você pode tentar publicá-los de forma síncrona para ver se isso faz diferença, então você sabe que é o problema e seria melhor usar os comandos redis INCR para essa finalidade.