Redis
 sql >> Database >  >> NoSQL >> Redis

Redis non si aggiorna quando molte richieste contemporaneamente

Questo forse ha qualcosa a che fare con la configurazione del tuo server redis.

Puoi eseguire MONITOR da redis cli sul tuo computer host.

Di solito ci si connette tramite il cli ad esempio:

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

La porta predefinita è 6379

Questo mostrerà tutte le interazioni con il server redis, tuttavia non eseguirlo poiché sempre in esecuzione ha un calo delle prestazioni ma ottimo per la risoluzione dei problemi.

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]

Questo dovrebbe darti un'indicazione del problema.

Puoi anche eseguire il comando INFO da redis cli per vedere le statistiche del server e informazioni come l'utilizzo della 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>

Usa anche il comando INCRBY dal tuo client redis nel tuo codice, altrimenti dovrai aumentare il tuo valore di conteggio prima di impostarlo che non è coerente con il modello asincrono.

https://redis.io/commands/incrby

Penso che il tuo problema sia perché questo è asincrono giusto?

Quindi i conteggi non sono sincronizzati quando vengono pubblicati poiché alcuni potrebbero essere attesi prima di altri.

Ad ogni modo, potresti provare a pubblicarli in sincronia per vedere se questo fa la differenza, quindi sai che è il problema e sarebbe meglio usare i comandi INCR redis per questo scopo.