Redis
 sql >> Base de données >  >> NoSQL >> Redis

Redis ne met pas à jour lorsque de nombreuses demandes à la fois

Cela a peut-être quelque chose à voir avec la configuration de votre serveur Redis.

Vous pouvez exécuter MONITOR à partir de la cli redis sur votre machine hôte.

Généralement on se connecte via la cli par exemple :

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

Le port par défaut est 6379

Cela affichera toutes les interactions avec le serveur Redis, mais ne l'exécutez pas car il a toujours un impact sur les performances, mais est idéal pour le dépannage.

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]

Cela devrait vous donner une indication du problème.

Vous pouvez également exécuter la commande INFO à partir de la cli redis pour voir les statistiques du serveur et des informations telles que l'utilisation de la mémoire.

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>

Utilisez également la commande INCRBY de votre client Redis dans votre code, sinon vous devrez incrémenter votre valeur de comptage avant de la définir, ce qui n'est pas cohérent avec le modèle asynchrone.

https://redis.io/commands/incrby

Je pense que votre problème est dû au fait que c'est asynchrone, n'est-ce pas?

Ainsi, les décomptes ne sont pas synchronisés lorsqu'ils sont publiés, car certains peuvent être attendus avant d'autres.

Quoi qu'il en soit, vous voudrez peut-être essayer de les publier de manière synchrone pour voir si cela fait une différence, alors vous savez que c'est le problème et qu'il serait préférable d'utiliser les commandes redis INCR à cette fin.