Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Redis aktualisiert nicht, wenn viele Anforderungen gleichzeitig gestellt werden

Dies hat möglicherweise etwas mit Ihrer Redis-Serverkonfiguration zu tun.

Sie können MONITOR von der Redis CLI auf Ihrem Host-Rechner ausführen.

Normalerweise verbinden Sie sich zum Beispiel über das CLI:

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

Der Standardport ist 6379

Dies zeigt alle Interaktionen mit dem Redis-Server, führen Sie dies jedoch nicht aus, da die ständige Ausführung einen Leistungseinbruch bedeutet, aber großartig für die Fehlerbehebung ist.

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]

Dies sollte Ihnen einen Hinweis auf das Problem geben.

Sie können auch den INFO-Befehl von der Redis-Cli ausführen, um Serverstatistiken und Informationen wie die Speichernutzung anzuzeigen.

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>

Verwenden Sie auch den INCRBY-Befehl von Ihrem Redis-Client in Ihrem Code, da Sie sonst Ihren Zählwert erhöhen müssen, bevor Sie ihn festlegen, was nicht mit dem asynchronen Muster übereinstimmt.

https://redis.io/commands/incrby

Ich denke, Ihr Problem ist, weil dies asynchron ist, oder?

Die Zählungen sind also nicht synchron, wenn sie gepostet werden, da auf einige möglicherweise gewartet wird, bevor andere es tun.

In jedem Fall möchten Sie vielleicht versuchen, sie synchron zu posten, um zu sehen, ob das einen Unterschied macht, dann wissen Sie, dass dies das Problem ist, und sollten für diesen Zweck besser die redis INCR-Befehle verwenden.