1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-04 15:02:09 +03:00
Commit Graph

67 Commits

Author SHA1 Message Date
Leibale Eidelman
3b1bad2296 Add support for sharded PubSub (#2373)
* refactor pubsub, add support for sharded pub sub

* run tests in redis 7 only, fix PUBSUB SHARDCHANNELS test

* add some comments and fix some bugs

* PubSubType, not PubSubTypes 🤦‍♂️

* remove test.txt

* fix some bugs, add tests

* add some tests

* fix #2345 - allow PING in PubSub mode (remove client side validation)

* remove .only

* revert changes in cluster/index.ts

* fix tests minimum version

* handle server sunsubscribe

* add 'sharded-channel-moved' event to docs, improve the events section in the main README (fix #2302)

* exit "resubscribe" if pubsub not active

* Update commands-queue.ts

* Release client@1.5.0-rc.0

* WIP

* use `node:util` instead of `node:util/types` (to support node 14)

* run PubSub resharding test with Redis 7+

* fix inconsistency in live resharding test

* add some tests

* fix iterateAllNodes when starting from a replica

* fix iterateAllNodes random

* fix slotNodesIterator

* fix slotNodesIterator

* clear pubSubNode when node in use

* wait for all nodes cluster state to be ok before testing

* `cluster.minimizeConections` tests

* `client.reconnectStrategry = false | 0` tests

* sharded pubsub + cluster 🎉

* add minimum version to sharded pubsub tests

* add cluster sharded pubsub live reshard test, use stable dockers for tests, make sure to close pubsub clients when a node disconnects from the cluster

* fix "ssubscribe & sunsubscribe" test

* lock search docker to 2.4.9

* change numberOfMasters default to 2

* use edge for bloom

* add tests

* add back getMasters and getSlotMaster as deprecated functions

* add some tests

* fix reconnect strategy + docs

* sharded pubsub docs

* Update pub-sub.md

* some jsdoc, docs, cluster topology test

* clean pub-sub docs

Co-authored-by: Simon Prickett <simon@redislabs.com>

* reconnect startegy docs and bug fix

Co-authored-by: Simon Prickett <simon@redislabs.com>

* refine jsdoc and some docs

Co-authored-by: Simon Prickett <simon@redislabs.com>

* I'm stupid

* fix cluster topology test

* fix cluster topology test

* Update README.md

* Update clustering.md

* Update pub-sub.md

Co-authored-by: Simon Prickett <simon@redislabs.com>
2023-01-25 11:00:39 -05:00
Ananda
e75a5db3e4 Add CLIENT LIST command and fix CLIENT INFO (#2368)
* fix client info

* add client list

* fix key validation in transformClientInfoReply

* fix issue with field in CLIENT LIST reply

* clean code

* fix multimem

* fix qbufFree argvMem totMem multiMem

Co-authored-by: Leibale <me@leibale.com>
2023-01-25 10:52:59 -05:00
Ananda
63511e5b9b Add latency graph command (#2359)
* add latency graph command

* fix coding style

* Clean code

* use "enable-debug-command" is redis 7+ only

* Update LATENCY_GRAPH.spec.ts

Co-authored-by: Leibale Eidelman <me@leibale.com>
2023-01-18 12:55:38 -05:00
Brandon
aa75ee49c6 #2038 Resolve legacy mode hGetAll returning in the wrong format compared to v3 results (#2367)
* Ensure that transformReply is optionally passed through to commands in legacy mode within multi

* Execute transformReply on legacy #sendCommand

* Scope transform changes to hGetAll

* Extensible method of transforming legacy replies, expands RedisCommand interface

* check `TRANSFORM_LEGACY_REPLY` on client creation (rather then on command exec), add tests

Co-authored-by: Leibale Eidelman <me@leibale.com>
2023-01-18 12:54:29 -05:00
Vojtech Novak
f6093b7b0f fix: zero ttl is ignored (#2349)
* fix: zero ttl is ignored

* Update SET.ts

* Update SET.ts

Co-authored-by: Leibale Eidelman <me@leibale.com>
2022-12-15 12:04:13 -05:00
Kien Dang
2a8e11a51d Export SetOptions type in redis/client command (#2268)
* Export setOptions type

* Export setOptions type in commands

* Revert "Export setOptions type in commands"

* Export SetOptions type in redis client

* Export SetOptions type in @redis/client

* Fix lint
2022-09-21 17:05:16 -04:00
Roman Poleguev
e1c0580d65 Fix CLUSTER_NODES ipv6 address parsing (#2269) 2022-09-19 13:31:21 -04:00
Brandon Everett
ac032d82a0 fix: loop over arguments instead of spreading (#2160)
* fix: loop over arguments instead of spreading

* update to use concat

* use the returned array from pushVerdictArguments (instead of assuming it'll push to the original array)

* fix "Type 'RedisCommandArguments' is not assignable to type 'string[]'."

* fix "Argument of type 'RedisCommandArgument | RedisCommandArguments[]' is not assignable to parameter of type 'RedisCommandArgument | RedisCommandArgument[]'"

* fix "Type 'RedisCommandArguments' is not assignable to type 'string[]'"

Co-authored-by: Leibale Eidelman <leibale1998@gmail.com>
2022-07-13 07:01:35 -04:00
Ștefan Cenușă
f9f5e494dd fixed MIGRATE function when key is array (#2184)
* fix: 2163 push empty string as arg

* fix: updated migrate test with keys array
2022-07-07 14:33:58 -04:00
Tom Graham
82f43d9a53 Fix issue with buffers in objects using hSet (#2139)
* Fix issue with buffers in objects using hSet

When using hSet with an object, any buffer values inside the object are converted to strings instead of left as buffers.
This fix specifically handles the special case of buffers, whilst casting everything else strings (to continue "gracefully" handling the case where the value not a valid type).

* Update HSET.ts

* Update HSET.spec.ts

Co-authored-by: Leibale Eidelman <leibale1998@gmail.com>
2022-05-26 09:56:10 -04:00
Leibale Eidelman
7196b907e5 fix #1915 - CLIENT TRACKINGINFO (#2127)
* fix #1915 - CLIENT TRACKINGINFO

* remove .only
2022-05-12 13:05:27 -04:00
Leibale Eidelman
d8db974980 fix #1914 - CLIENT TRACKING (#2126) 2022-05-12 12:56:09 -04:00
Leibale Eidelman
429b11e020 fix #1959 - LCS (#2129)
* fix #1959 - LCS

* newlines at end of files
2022-05-11 14:24:07 -04:00
Leibale Eidelman
24c2c867f8 fix #1917 - CLIENT UNPAUSE (#2128)
* fix #1917 - CLIENT UNPAUSE

* fix CLIENT UNPAUSE
2022-05-11 14:20:52 -04:00
Leibale Eidelman
94dbcc847b fix #1912 - CLIENT PAUSE (#2125)
* fix #1912 - CLIENT PAUSE

* fix client pause

* Update commands.ts
2022-05-11 10:02:29 -04:00
Leibale Eidelman
53a96ccce4 fix #1911 - CLIENT NO-EVICT (#2124) 2022-05-11 09:36:23 -04:00
Avital Fine
06c1d2c243 Support all GEORADIUS Commands (#2017)
* Support all GEORADIUS Commands

* move store bool to options

* simplify transformReply for store commands

* clean code

Co-authored-by: leibale <leibale1998@gmail.com>
2022-05-11 09:36:12 -04:00
Leibale Eidelman
0752f143a6 prepare 4.1.0 (#2111)
* increase test coverage

* @node-redis to @redis

* ugprade deps

* fix benchmark

* use 7.0 docker (not rc), update readmes, clean code, fix @-redis import

* update readme

* fix function in cluster

* update docs

Co-authored-by: Chayim <chayim@users.noreply.github.com>

* Update clustering.md

* add subpackages move warning

* drop support for node 12

* upgrade deps

* fix tsconfig.base.json

Co-authored-by: Chayim <chayim@users.noreply.github.com>
2022-05-02 11:48:12 -04:00
Leibale Eidelman
baf67fd87f fix #1976 - XSETID (#2104) 2022-04-26 09:05:44 -04:00
Leibale Eidelman
b586ccb9d7 fix #1904 - ACL DRYRUN (#2102)
* fix #1904 - ACL DRYRUN

* clean code

* fix test
2022-04-26 09:04:21 -04:00
Leibale Eidelman
11c6c24881 Add support for redis functions (#2020)
* fix #1906 - implement BITFIELD_RO

* initial support for redis functions

* fix test utils

* redis functions commands and tests

* upgrade deps

* fix "Property 'uninstall' does not exist on type 'SinonFakeTimers'"

* upgrade dockers version

* Merge branch 'master' of github.com:redis/node-redis into functions

* fix FUNCTION LIST WITHCODE and FUNCTION STATS

* upgrade deps

* set minimum version for FCALL and FCALL_RO

* fix FUNCTION LOAD

* FUNCTION LOAD

* fix FUNCTION LOAD & FUNCTION LIST & FUNCTION LOAD WITHCODE

* fix FUNCTION_LIST_WITHCODE test
2022-04-25 09:09:23 -04:00
Avital Fine
b1a0b48d2c Support new muilti pop commands (#2051)
* Support new muilti pop commands

* remove .only

* clean code

* fix for 4558ec6a31

* fix tests

Co-authored-by: leibale <leibale1998@gmail.com>
2022-04-25 07:50:43 -04:00
Leibale Eidelman
33a3f3f6c6 run tests with redis 7 as well - copied from #2020 (#2062)
* run tests on redis 7 as well - copied from #2020

* copy some changes from #2020

* clean BITCOUNT
2022-03-30 08:12:21 -04:00
Avital Fine
b0fb3bd63f Support COMMAND GETKEYSANDFLAGS (#2039)
* Support COMMAND GETKEYSANDFLAGS

* Update COMMAND_GETKEYSANDFLAGS.spec.ts

remove '.only'

* clean code

Co-authored-by: leibale <leibale1998@gmail.com>
2022-03-30 06:31:26 -04:00
Avital Fine
f6f645bdbb Support SORT_RO (#2041)
* Support SORT_RO

* move pushSortReadOnlyArgs and SortReadOnlyOptions to generic-transformers

* clean code

Co-authored-by: leibale <leibale1998@gmail.com>
2022-03-28 18:36:47 -04:00
Avital Fine
5821fcbe4d Support CLUSTER commands (#2015)
* Support CLUSTER commands

* add some client tests

* remove only

* delete cluster slaves

* delete reset clietn test

* SET SLOT

* test with client

* fix fail

* Update CLUSTER_COUNTKEYSINSLOT.spec.ts

* move commands to client/commands.ts

* clusterNode

* remove CLUSTER-SET-CONFIG-EPOCH test with client

* clean code

Co-authored-by: leibale <leibale1998@gmail.com>
2022-03-28 18:31:15 -04:00
Avital Fine
515adf1346 Support OBJECT [...] commands (#2014)
* Support OBJECT [...] commands

* move commands to cluster/commands.ts

Co-authored-by: leibale <leibale1998@gmail.com>
2022-03-27 13:35:01 -04:00
Quentin Rankin
6ca45f674d support command LATENCY DOCTOR (#2053)
* The Latency Doctor Command has been added to the project

* Update LATENCY_DOCTOR.ts

* Update LATENCY_DOCTOR.spec.ts

* Update LATENCY_DOCTOR.spec.ts

Co-authored-by: QuentinRK <q.rankin@outlook.com>
Co-authored-by: Leibale Eidelman <leibale1998@gmail.com>
2022-03-27 13:29:10 -04:00
Avital Fine
6b8a40a36b Support new cluster commands (#2050)
* Support new cluster commands

* clean code

Co-authored-by: leibale <leibale1998@gmail.com>
2022-03-27 13:06:27 -04:00
Avital Fine
fe16dc0eae Support BIT|BYTE option (#2035)
* Support BIT|BYTE option

* clean code

* clean code

* clean code

Co-authored-by: leibale <leibale1998@gmail.com>
2022-03-24 11:00:08 -04:00
Avital Fine
24cd9ba9a4 Support new expire features (#2036)
* Support new expire features

* Update PEXPIRETIME.ts

* Update EXPIRETIME.ts

* fix version skip

* clean code

Co-authored-by: leibale <leibale1998@gmail.com>
2022-03-24 10:17:01 -04:00
Avital Fine
c5c2bf9042 Support multiple parametrs on CONFIG SET (#2042)
* support multiple parametrs on CONFIG SET

* clean code

Co-authored-by: leibale <leibale1998@gmail.com>
2022-03-20 13:40:27 -04:00
Avital Fine
875298e6e3 Support ZINTERCARD and SINTERCARD (#2040)
* Support ZINTERCARD and SINTERCARD

* clean code

* clean code

Co-authored-by: leibale <leibale1998@gmail.com>
2022-03-20 13:40:19 -04:00
Avital Fine
be51abe347 Support COMMAND LIST (#2013)
* Support COMMAND LIST

* Update COMMAND_LIST.spec.ts

* add version check

* clean code

Co-authored-by: leibale <leibale1998@gmail.com>
2022-03-10 12:20:01 -05:00
Leibale Eidelman
c57da8b78b add missing FIRST_KEY_INDEX (#2028) 2022-03-08 17:26:13 -05:00
Simon Prickett
88586048e1 Fixes the time command response. (#2008)
* Fixes the time command response.

* Adds TIME example.

* Update TIME.ts

* Update get-server-time.js

Co-authored-by: Leibale Eidelman <leibale1998@gmail.com>
2022-03-07 07:20:19 -05:00
Leibale Eidelman
9180b91047 fix #1906 - implement BITFIELD_RO (#1988)
* fix #1906 - implement BITFIELD_RO

* set bitfield_ro min version to 6.2
2022-03-02 05:29:42 -05:00
Leibale Eidelman
c03ab8803d fix #1998 - fix RPOPLPUSH return type (#1999) 2022-02-21 12:56:42 -05:00
Leibale Eidelman
0803f4e19c add nodeAddressMap config for cluster (#1827)
* add `nodeAddressMap` config for cluster

* Update cluster-slots.ts

* Update cluster-slots.ts

* update docs

Co-authored-by: Guy Royse <guy@guyroyse.com>

Co-authored-by: Guy Royse <guy@guyroyse.com>
2022-02-14 15:23:35 -05:00
Leibale Eidelman
21270ba6e2 fix #1875 - fix XPENDING_RANGE id type (#1879) 2022-01-31 05:41:31 -05:00
Leibale Eidelman
d34cb9c07b fix #1819 - fix EXISTS reply (#1820)
* fix #1819 - fix EXISTS reply

* fix for f3f946fd9a - "fix" tests
2022-01-11 11:45:50 -05:00
leibale
627eb78315 run XPEDNDING with consumers test on redis 6.2 and up, fix redis 6 tests 2021-12-29 17:24:20 -05:00
leibale
77022209bd fix returnBuffers, add some tests 2021-12-29 17:09:59 -05:00
Avital Fine
f93ac04436 Bloom commands (#1786)
* ft.alter

* bloom commands

* tdigest

* delete tdigest

* uncomment tests

* small changes

* Update MADD.ts

* small changes

* clean code

* Update README.md

* Update README.md

Co-authored-by: leibale <leibale1998@gmail.com>
2021-12-29 11:55:09 -05:00
leibale
a0de7967f9 buffers, buffers everywhere... 2021-12-20 14:47:51 -05:00
leibale
a1bed9a10f add buffer support to a bunch of commands 2021-12-15 17:08:50 -05:00
leibale
73f6e6b86c fix LINSERT test title 2021-12-07 11:01:54 -05:00
leibale
ec7ccaf827 fix #1758 - implement some CLIENT commands, add name to RedisClientOptions 2021-12-06 21:48:14 -05:00
leibale
bc1bf7e7b1 increase pushGeoCountArgument test coverage 2021-11-27 23:51:15 -05:00
leibale
90c37bd1af fix #1739 - add support for number as value in HSET 2021-11-27 22:58:53 -05:00