1
0
mirror of https://github.com/redis/go-redis.git synced 2025-12-03 18:31:14 +03:00
Commit Graph

2887 Commits

Author SHA1 Message Date
Nedyalko Dyakov
9e603e0f8e unstable wip 2025-11-11 01:47:53 +02:00
Nedyalko Dyakov
8695314c11 remove unused benchs 2025-11-11 01:04:08 +02:00
Nedyalko Dyakov
20aa85037d address linter and tests 2025-11-11 01:04:08 +02:00
Nedyalko Dyakov
7a400c3a70 use simple channel based semaphores 2025-11-11 01:04:08 +02:00
Nedyalko Dyakov
584c162736 use simple approach of fifo waiters 2025-11-11 01:04:08 +02:00
Nedyalko Dyakov
4f612c1f63 priority of operations 2025-11-11 01:04:08 +02:00
Nedyalko Dyakov
949b1b5df7 waiter may double-release (if closed/times out) 2025-11-11 01:04:05 +02:00
Nedyalko Dyakov
d3bcc30a8f use sync.Cond 2025-11-11 00:16:27 +02:00
Nedyalko Dyakov
7bf921716d Merge remote-tracking branch 'origin/ndyakov/state-machine-conn' into playground/autopipeline 2025-11-10 13:49:51 +02:00
Nedyalko Dyakov
dc319c0f7e should properly notify the waiters
- this way a waiter that timesout at the same time
a releaser is releasing, won't throw token. the releaser
will fail to notify and will pick another waiter.

this hybrid approach should be faster than channels and maintains FIFO
2025-11-10 13:47:41 +02:00
Nedyalko Dyakov
e418737532 try to fix the semaphore 2025-11-10 13:29:23 +02:00
Nedyalko Dyakov
1dfa805f31 fix fast semaphore that could have been starved 2025-11-10 03:21:36 +02:00
Nedyalko Dyakov
edf6bd794f fix flaky test 2025-11-07 16:25:06 +02:00
Nedyalko Dyakov
c4124360dc Merge branch 'master' into ndyakov/state-machine-conn 2025-11-07 14:36:30 +02:00
Nedyalko Dyakov
5069fd6fa9 feat(cmd): Add CAS/CAD commands (#3583)
* add cas/cad commands

* feat(command): Add SetIFDEQ, SetIFDNE and *Get cmds

Decided to move the *Get argument as a separate methods, since the
response will be always the previous value, but in the case where
the previous value is `OK` there result may be ambiguous.

* fix tests

* matchValue to be interface{}

* Only Args approach for DelEx

* use uint64 for digest, add example

* test only for 8.4
2025-11-07 13:31:00 +02:00
Nedyalko Dyakov
cca0382772 preallocate state slices 2025-11-06 15:00:34 +02:00
Nedyalko Dyakov
9466c1c8a9 preallocate errors and states 2025-11-06 14:57:05 +02:00
Nedyalko Dyakov
6fe786a138 advanced examples 2025-11-06 13:14:34 +02:00
Nedyalko Dyakov
0c5e3c93e0 Merge branch 'ndyakov/state-machine-conn' into playground/autopipeline 2025-11-05 22:34:55 +02:00
Nedyalko Dyakov
3cb5ab36b6 Merge branch 'master' into ndyakov/state-machine-conn 2025-11-05 22:05:33 +02:00
Nedyalko Dyakov
41024f72c1 CAS instead of reading the state 2025-11-05 22:05:12 +02:00
Nedyalko Dyakov
2b8023cb17 use pool size for semsize 2025-11-05 22:03:49 +02:00
Nedyalko Dyakov
4673c621ff use read instad of control 2025-11-05 21:59:57 +02:00
Nedyalko Dyakov
18b46a1ca7 fix flaky test 2025-11-05 21:35:20 +02:00
destinyoooo
c1766729ec feat: Add support for certain slowlog commands (#3585)
* Add support for certain slowlog commands

* add NonRedisEnterprise label for slow reset test

---------

Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-11-05 21:21:38 +02:00
destinyoooo
63fbaafcef feat: support for latency command (#3584)
* support for latency command

* add NonRedisEnterprise label for latency test
2025-11-05 21:10:35 +02:00
Nedyalko Dyakov
95af71c50b Merge branch 'master' into ndyakov/state-machine-conn 2025-11-05 17:26:01 +02:00
manish
60b748bf1a fix(sentinel): handle empty address (#3577)
* improvements

* linter fixes

* prevention on unnecessary allocations in case of bad configuration

* Test/Benchmark, old code with safety harness preventing panic

---------

Co-authored-by: manish <manish.sharma@manifestit.io>
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-11-05 16:53:45 +02:00
Nedyalko Dyakov
3b6513988c Merge branch 'master' into ndyakov/state-machine-conn 2025-11-05 14:34:20 +02:00
ofekshenawa
284d93a4b3 feat(cmd): Add support for MSetEX command (#3580)
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-11-05 13:35:43 +02:00
Nedyalko Dyakov
c3dbc8c2ab address linter comment 2025-11-04 18:27:28 +02:00
destinyoooo
e2f6700d79 feat(acl): add acl support and test (#3576)
* feat: add acl support and command test

* validate client name before kill it

---------

Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-11-04 18:19:09 +02:00
Nedyalko Dyakov
a39dd4c9d2 silence logs and faster hooks manager 2025-11-04 18:18:03 +02:00
Nedyalko Dyakov
c5ca81d0fc Merge branch 'master' into ndyakov/state-machine-conn 2025-11-04 18:00:22 +02:00
ofekshenawa
71bb3cae4f Add support for XReadGroup CLAIM argument (#3578)
* Add support for XReadGroup CLAIM argument

* modify tutorial tests

---------

Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-11-03 18:58:14 +02:00
Nedyalko Dyakov
ce53464448 chore(ci): 8.4 rc1-pre.2 (#3579) 2025-11-03 17:49:26 +02:00
Nedyalko Dyakov
bdd3016963 wip, hard limit on batch 2025-11-03 17:17:30 +02:00
Nedyalko Dyakov
ed43bd6dbd wip, remove ring 2025-11-03 00:40:47 +02:00
Nedyalko Dyakov
c637c0824e wip 2025-11-03 00:14:24 +02:00
Nedyalko Dyakov
ffa32a5370 wip 2025-10-31 17:13:11 +02:00
Nedyalko Dyakov
f672885808 wip 2025-10-31 13:04:46 +02:00
Nedyalko Dyakov
9eaeea1347 Merge branch 'ndyakov/state-machine-conn' into playground/autopipeline 2025-10-30 23:53:53 +02:00
Nedyalko Dyakov
d91800d640 fix test assertions 2025-10-30 22:20:14 +02:00
Nedyalko Dyakov
5fa97c826c add missed method in interface 2025-10-30 21:10:22 +02:00
Nedyalko Dyakov
ef3e06fd71 Merge remote-tracking branch 'origin/master' into ndyakov/state-machine-conn 2025-10-30 19:44:45 +02:00
cyningsun
ae5434ce66 feat(pool): Improve success rate of new connections (#3518)
* async create conn

* update default values and testcase

* fix comments

* fix data race

* remove context.WithoutCancel, which is a function introduced in Go 1.21

* fix TestDialerRetryConfiguration/DefaultDialerRetries, because tryDial are likely done in async flow

* change to share failed to delivery connection to other waiting

* remove chinese comment

* fix: optimize WantConnQueue benchmarks to prevent memory exhaustion

- Fix BenchmarkWantConnQueue_Dequeue timeout issue by limiting pre-population
- Use object pooling in BenchmarkWantConnQueue_Enqueue to reduce allocations
- Optimize BenchmarkWantConnQueue_EnqueueDequeue with reusable wantConn pool
- Prevent GitHub Actions benchmark failures due to excessive memory usage

Before: BenchmarkWantConnQueue_Dequeue ran for 11+ minutes and was killed
After: All benchmarks complete in ~8 seconds with consistent performance

* format

* fix turn leaks

---------

Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
Co-authored-by: Hristo Temelski <hristo.temelski@redis.com>
2025-10-30 19:21:12 +02:00
Nedyalko Dyakov
d207749af5 flaky test 2025-10-30 19:19:20 +02:00
Nedyalko Dyakov
5f0b58ba14 Merge branch 'master' into ndyakov/state-machine-conn 2025-10-30 18:34:45 +02:00
Nedyalko Dyakov
fc2da240f8 wait more in e2e test 2025-10-30 18:27:15 +02:00
Nedyalko Dyakov
09a2f07ac3 re doesn't support requirepass 2025-10-29 16:34:01 +02:00