You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
Client Side Caching (#2947)
* 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>
This commit is contained in:
@@ -188,18 +188,22 @@ export class SentinelFramework extends DockerBase {
|
||||
}
|
||||
|
||||
const options: RedisSentinelOptions<RedisModules, RedisFunctions, RedisScripts, RespVersions, TypeMapping> = {
|
||||
...opts,
|
||||
name: this.config.sentinelName,
|
||||
sentinelRootNodes: this.#sentinelList.map((sentinel) => { return { host: '127.0.0.1', port: sentinel.docker.port } }),
|
||||
passthroughClientErrorEvents: errors
|
||||
}
|
||||
|
||||
if (this.config.password !== undefined) {
|
||||
options.nodeClientOptions = {password: this.config.password};
|
||||
options.sentinelClientOptions = {password: this.config.password};
|
||||
}
|
||||
if (!options.nodeClientOptions) {
|
||||
options.nodeClientOptions = {};
|
||||
}
|
||||
options.nodeClientOptions.password = this.config.password;
|
||||
|
||||
if (opts) {
|
||||
Object.assign(options, opts);
|
||||
if (!options.sentinelClientOptions) {
|
||||
options.sentinelClientOptions = {};
|
||||
}
|
||||
options.sentinelClientOptions = {password: this.config.password};
|
||||
}
|
||||
|
||||
return RedisSentinel.create(options);
|
||||
|
Reference in New Issue
Block a user