node.js - 寻找一种将新字段添加到嵌套 redis 对象的更好方法
问题描述
我在节点 js 中使用 redis 包。
我的 redis 中有一个 blogs 字段,如下所示:
console.log((await redisClient.get('blogs')))
// results in something like this
{
"615f20fee6ee6a760303dbbb": {
"_id": "615f20fee6ee6a760303dbbb",
"somefileds": "somevalues"
},
... more stuff
}
我编写了一个将新博客缓存到 redis 的函数,它可以很好地忽略性能问题。
我写了这样的东西:
const writeSingleBlogOnRedis = async blog => {
const data = JSON.parse((await redisClient.get('blogs')))
data[blog._id] = blog
redisClient.set('blogs', JSON.stringify(data))
}
我的想法是我获取所有旧数据并将其设为对象,然后将新博客添加到对象中,对对象进行字符串化,然后再次添加它,我知道这是一种有效的方法。
我尝试使用 hset,我的代码如下所示:
const writeSingleBlogOnRedis = blog => {
redisClient.hset('blogs', blog._id, JSON.stringify(blog), (err, value) => {})
}
但这会破坏一切,获取博客的结果(上面的 get 函数)将变为空,我做错了什么?
解决方案
推荐阅读
- php - 如何以php形式提交html标签?
- html - x 轴上具有连续数据的条形图
- php - php email smpt 验证错误发送 34 字节失败
- pebble - 如何检测 Pebble 模板中 for 循环中的最后一项?
- git - 找不到记录器“pip.vcs.git”的处理程序
- clojure - 如何消除 EBNF Instaparse 语法中的歧义
- java - 为什么 BouncyCastle Keccak sha-384 和 MessageDigest sha-384 有不同的输出?
- python - Python 套接字只能在 LAN 上工作吗?
- php - 使用php在目录中查找文件
- javascript - 如何使用 ajax 和 laravel 5.6 保存多个输入和文件