Namespace key in redis by db

This commit is contained in:
Adria Navarro 2024-03-01 13:41:40 +01:00
parent da012c0f08
commit 82a6f9027e
1 changed files with 5 additions and 3 deletions

View File

@ -23,6 +23,7 @@ export class DocWritethrough {
private _docId: string private _docId: string
private writeRateMs: number private writeRateMs: number
private cacheKeyPrefix: string
private docInfoCacheKey: string private docInfoCacheKey: string
constructor( constructor(
@ -33,7 +34,8 @@ export class DocWritethrough {
this.db = db this.db = db
this._docId = docId this._docId = docId
this.writeRateMs = writeRateMs this.writeRateMs = writeRateMs
this.docInfoCacheKey = `${this.db.name}:${this.docId}:info` this.cacheKeyPrefix = `${this.db.name}:${this.docId}`
this.docInfoCacheKey = `${this.cacheKeyPrefix}:info`
} }
get docId() { get docId() {
@ -85,7 +87,7 @@ export class DocWritethrough {
private async storeToCache(cache: BaseCache, data: Record<string, any>) { private async storeToCache(cache: BaseCache, data: Record<string, any>) {
for (const [key, value] of Object.entries(data)) { for (const [key, value] of Object.entries(data)) {
const cacheKey = this.docId + ":data:" + key const cacheKey = this.cacheKeyPrefix + ":data:" + key
await cache.store(cacheKey, { key, value }, undefined) await cache.store(cacheKey, { key, value }, undefined)
} }
} }
@ -98,7 +100,7 @@ export class DocWritethrough {
doc = { _id: this.docId } doc = { _id: this.docId }
} }
const keysToPersist = await cache.keys(`${this.docId}:data:*`) const keysToPersist = await cache.keys(`${this.cacheKeyPrefix}:data:*`)
for (const key of keysToPersist) { for (const key of keysToPersist) {
const data = await cache.get(key, { useTenancy: false }) const data = await cache.get(key, { useTenancy: false })
doc[data.key] = data.value doc[data.key] = data.value