* 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>
* fix(client): cache subsequent clients
we dont need to recreate a client if
its config hasnt changed
fixes#2954
* handle circular structures
* make cache generic
> FT.AGGREGATE returns an array reply where each row is an array reply and represents a single aggregate result.
The integer reply at position 1 does not represent a valid value.
https://redis.io/docs/latest/commands/ft.aggregate/#return
> FT.AGGREGATE returns an array reply where each row is an array reply
and represents a single aggregate result.
> The integer reply at position 1 does not represent a valid value.
We now calculate the result length bazed on the number of results
instead of the integer reply at pos 1
* fix: fix various command import issues
there was some sort of a circular dependency
in <module>/lib/commands/index.ts for various modules
fixes#2937fixes#2941
* remove redundant definition
* Export CommandParser from client index file
* Tidy up long export line in client index file
Wrap and sort entries.
* Adapt and fix wrong examples in programmability doc
- Added a Connection Pooling section in `createClient` documentation to clarify that a single connection is typically sufficient and to provide guidance on when to use a connection pool.
- Updated `isolationPoolOptions` description with a more precise explanation and replaced the broken link with a reference to `createClientPool`.
- Changes made based on issue #2845.
* 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>
* [CAE-342] Fix a couple of bugs
* Fixed issue with nodes masterauth persistency, changed docker container
* [CAE-342] Fixed a couple of sentinel issues, enabled most tests
* [CAE-342] Added comment
* [CAE-342] Migrate majority of tests to testUtils
* [CAE-342] Minor refactor
* .
* [CAE-342] Using cae containers for sentinel
* [CAE-342] Improved resiliency of the legacy tests, added TSdoc comment
* [CAE-342] Some extra logging, removed unneeded changes
* [CAE-342] Moved docker env as optional part of redisserverdockerconfig
* [CAE-342] Move password to serverArguments
* [CAE-342] Moved ts-node to devDependencies
* [CAE-342] Reverted legacy testing framework improvements