* CSC POC ontop of Parser
* add csc file that weren't merged after patch
* address review comments
* nits to try and fix github
* last change from review
* Update client-side cache and improve documentation
* Add client side caching RESP3 validation
* Add documentation for RESP and unstableResp3 options
* Add comprehensive cache statistics
The `CacheStats` class provides detailed metrics like hit/miss counts,
load success/failure counts, total load time, and eviction counts.
It also offers derived metrics such as hit/miss rates, load failure rate,
and average load penalty. The design is inspired by Caffeine.
`BasicClientSideCache` now uses a `StatsCounter` to accumulate these
statistics, exposed via a new `stats()` method. The previous
`cacheHits()` and `cacheMisses()` methods have been removed.
A `recordStats` option (default: true) in `ClientSideCacheConfig`
allows disabling statistics collection.
---------
Co-authored-by: Shaya Potter <shaya@redislabs.com>
* Update README.MD
* docs: update programmability.md examples
+ add Programmability section to README and
* fix imports according to the new v5 exports
* more v5 docs updates
---------
Co-authored-by: Nikolay Karadzhov <nkaradzhov89@gmail.com>
RESP3 Support
- Some commands responses in RESP3 aren't stable yet and therefore return an "untyped" ReplyUnion.
Sentinel
TypeMapping
Correctly types Multi commands
Note: some API changes to be further documented in v4-to-v5.md
* Connect returns the instance of the client
* Added a test
* No auto setup
* Added a bit of docs
* fix the return type, test, and the docs
* fix return type
* Update packages/client/lib/client/index.spec.ts
Co-authored-by: Francisco Presencia <franciscop@users.noreply.github.com>
---------
Co-authored-by: Leibale Eidelman <me@leibale.com>
* 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>
* Adds example for transactions with arbitrary commands.
* Formatting.
* Adds isReady doc and example for isReady and isOpen.
* Improved example.
* Added isOpen explanation.
* Removed example from a different PR.