我有通过node.js存储在Redis中的JSON(<1k).将其存储为对象或字符串有哪些优缺点?我错过了其他选择吗?所有处理最终都会在客户端进行,因此无需转换为对象.
组
var images = JSON.parse(data); // data is already JSON, is this needed?
callback(images); // sends result to the user
r.set('images:' + req.query, images); // saving the object
Run Code Online (Sandbox Code Playgroud)
得到
callback(images);
Run Code Online (Sandbox Code Playgroud)
yoj*_*o87 36
您可以将redis中的JSON存储为专用密钥(或集合/列表的成员/值)或散列结构中的纯字符串.如果你将node_redis文档看成Friendlier哈希命令部分,你会发现它为你提供了一些操作基于JSON的数据的有用方法.这种方法的优点在于它允许您仅获取/设置原始对象的一部分,并且与普通字符串相比,它也可能消耗更少的内存.
Guy*_*and 10
RedisJSON模块允许从 Redis 键存储、更新和获取 JSON 值。
它向 Redis 添加了新的 JSON 数据类型和命令,可以像任何其他 Redis 本机命令一样进行访问。
例如
> JSON.SET user1 $ '{"name":"Ron Dan", "lastSeen":1478476800, "loggedOut": true}'
OK
> JSON.GET user1 $.name
"[\"Ron Dan\"]"
> JSON.NUMINCRBY user1 $.lastSeen 100
"[1478476900]"
Run Code Online (Sandbox Code Playgroud)
你可以使用这个库redis-json
示例使用示例:
import Redis from 'ioredis';
import JSONCache from 'redis-json';
const redis = new Redis();
const jsonCache = new JSONCache(redis)
const user = {
name: "test",
age: 21,
gender: "male"
}
await jsonCache.set('123', user)
const result = await jsonCache.get('123')
Run Code Online (Sandbox Code Playgroud)
该库将 json 存储在哈希集中。
它还支持检索单个或一组密钥,即
await jsonCache.get('123', "age", "name")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
42842 次 |
最近记录: |