我正在尝试在Redis存储中设置整个User对象。 USer具有名称和喜欢的音乐等东西。
当我使用HSET在Redis中设置密钥时。我注意到它不是数据集的一部分。基本上没有水。
我也尝试过HMSET。
这是我正在做什么的代码片段:
mongoose.Query.prototype.exec = async function() {
if (!this.useCache) {
return exec.apply(this, arguments);
}
const key = JSON.stringify(
Object.assign({}, this.getQuery(), {
collection: this.mongooseCollection.name
})
);
//See if we have a value for 'key' in redis
const cacheValue = await client.hget(this.hashKey, key);
//If we do, return that
if (cacheValue) {
//console.log("From cache");
const doc = JSON.parse(cacheValue);
return Array.isArray(doc)
? doc.map(d => new this.model(d))
: new this.model(doc);
}
//Otherwise, issue the query and store the result in redis
const result = await exec.apply(this, arguments);
client.hset(this.hashKey, key, JSON.stringify(result));
if (this.mongooseCollection.name !== "systems") {
client.expire(this.hashKey, 1800); // 30 minutes cache
}
//console.log("Saved hashkey to cache");
return result;
};```
I would like to get the entire object back.