1
0
mirror of https://github.com/redis/go-redis.git synced 2025-07-16 13:21:51 +03:00
Commit Graph

11 Commits

Author SHA1 Message Date
4ac591c7c4 Set correct cluster slot for scan commands, similarly to Java's Jedis client (#2623)
- At present, the `scan` command is dispatched to a random slot.
- As far as I can tell, the scanX family of commands are not cluster aware (e.g. don't redirect the client to the correct slot).
- You can see [here](869dc0bb66/src/main/java/redis/clients/jedis/ShardedCommandObjects.java (L101)), the Jedis client calling `processKey` on the match argument, and this is what this PR also does.

We've had this patch running in production, and it seems to work well for us.

For further thought:
- Continuing looking at other Redis clients (e.g. Jedis), they outright [reject as invalid](869dc0bb66/src/main/java/redis/clients/jedis/ShardedCommandObjects.java (L98)) any scan command that does not include a hash-tag. Presumably this has the advantage of users not being surprised when their scan produces no results when a random server is picked.
- Perhaps it would be sensible for go-redis to do the same also?

Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-06-24 13:43:03 +03:00
182a04f5fa update HExpire command documentation (#3355)
* update HExpire command documentation

* Apply suggestions from code review

Format the links in the documentation. Add missing documentation.

---------

Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-04-23 22:52:38 +03:00
a7b4ce5e50 docs: fix documentation comments (#3351) 2025-04-22 08:11:00 +03:00
93bc3e6140 fix add missing command in interface (#3344) 2025-04-15 16:19:53 +03:00
15059395a1 Support new hash commands: HGETDEL, HGETEX, HSETEX (#3305) 2025-03-24 14:03:26 +02:00
cd55713972 feat: add hstrlen command for hash (#2843)
* feat: add hstrlen command for hash

Signed-off-by: rfyiamcool <rfyiamcool@163.com>

* feat: add hstrlen command for hash

Signed-off-by: rfyiamcool <rfyiamcool@163.com>

---------

Signed-off-by: rfyiamcool <rfyiamcool@163.com>
Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com>
2025-03-04 13:31:45 +02:00
beb8692fc3 chore: fix some comments (#3226)
Signed-off-by: zhuhaicity <zhuhai@52it.net>
Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com>
2025-02-03 19:29:02 +02:00
75398584cf Support Hash-field expiration commands in Pipeline & Fix HExpire HExpireWithArgs expiration (#3038)
* Support Hash-field expiration commands in Pipeline

* Fix HExpire & HExpireWithArgs expiration

* Fix HExpire & HPExpire Testcase

* Update commands_test.go

---------

Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com>
Co-authored-by: Monkey <golang@88.com>
2024-07-11 13:08:23 +08:00
097cddbeb0 Support NOVALUES parameter for HSCAN (#2925)
* Support NOVALUES parameter for HSCAN

Issue #2919

The NOVALUES parameter instructs HSCAN to only return the hash keys,
without values.

* Update hash_commands.go

---------

Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com>
2024-06-20 01:24:45 +03:00
a9b4c5cfe6 Support Hash-field expiration commands (#2991)
* Add HExpire command

* Add HPExpire, HexpireAt, HPExpireAt, HTTL, HPTTL, HPersist,HExpireTime, HPExpireTIme, HGetF, HSetF commands

* add docstring

* add tests and fix commands

* modify commands

* api changes

* fix tests

* remove tests from RE
2024-06-20 00:59:27 +03:00
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