Commit Graph

12 Commits

Author SHA1 Message Date
Justin f1ffb55c9a
Only check latencies once every 10 seconds with `routeByLatency` (#2795)
* Only check latencies once every 10 seconds with `routeByLatency`

`routeByLatency` currently checks latencies any time a server returns
a MOVED or READONLY reply. When a shard is down, the ClusterClient
chooses to issue the request to a random server, which returns a MOVED
reply. This causes a state refresh and a latency update on all servers.
This can lead to significant ping load to clusters with a large number
of clients.

This introduces logic to ping only once every 10 seconds, only
performing a latency update on a node during the `GC` function if the
latency was set later than 10 seconds ago.

Fixes https://github.com/redis/go-redis/issues/2782

* use UnixNano instead of Unix for better precision

---------

Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com>
2024-11-20 14:36:39 +02:00
LINKIWI 5756b05219
Avoid unnecessary retry delay following MOVED and ASK redirection (#3048) 2024-07-13 14:55:12 +08:00
Srikar Jilugu 9c1f4f0642
fix node routing in slotClosestNode (#3043)
* fix node routing when all nodes are failing

* fix minlatency zero value
2024-07-10 11:26:27 +08:00
Monkey 2d8fa02ac2
fix: fix #2681 (#2998)
Signed-off-by: monkey92t <golang@88.com>
2024-05-29 10:55:28 +08:00
高木同学 f7f34feddf
Optimize docs useless imports and typo (#2970) 2024-04-14 22:59:09 +08:00
kindknow 6960bcc08d
chore: fix some comments (#2967)
Signed-off-by: kindknow <iturf@sina.com>
Co-authored-by: Monkey <golang@88.com>
2024-04-14 01:15:23 +08:00
singular-seal f5496d14dd
Fix for issues #2959 and #2960 (#2961)
Co-authored-by: Hu Ying <ying.hu@shopee.com>
2024-04-12 23:10:12 +08:00
John Du Hart 516abe867d
add CredentialsProvider to ClusterOptions (#2791) 2024-02-14 23:03:18 +02:00
ofekshenawa a32be3d93d
Add Suffix support to default client set info (#2852)
* Add Suffix support to defualt client set info

* Change ClientNameSuffix to IdentitySuffix

* add tests
2024-01-04 14:40:14 +02:00
ofekshenawa 86c68be278
Execute "COMMAND" command only when readonly (#2815)
* remove command command from oss cluster

* remove command command from oss cluster

* remove cmdInfo from ring

---------

Co-authored-by: Chayim <chayim@users.noreply.github.com>
2023-12-17 15:21:01 +02:00
chenjie199234 fd13da4fea
fix missing fields in different Options (#2757)
* fix missing fields in different Options

* fix missing fields in different Options

---------

Co-authored-by: chenjie199234 <chenjie199234@gmail.com>
Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com>
2023-10-30 14:35:51 +02:00
Chayim 6199a2af2c
Making command structs digestable (#2716)
* intial move

* adding stringcmdable

* moving module commands to align with other changes

---------

Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com>
Co-authored-by: ofekshenawa <ofek.shenawa@redis.com>
2023-09-20 16:08:24 +03:00