问题标签 [redisjson]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
107979 浏览

python - 如何在redis中存储一个复杂的对象(使用redis-py)

hmset函数可以设置每个字段的值,但是我发现如果值本身是一个复杂的结构化对象,从hget返回的值是一个序列化的字符串,而不是原来的对象

例如

i 的类型是字符串,而不是 python 对象,除了手动解析每个字段之外,还有什么方法可以解决这个问题?

0 投票
2 回答
5482 浏览

json - 将 Json 对象存储在 redis 中以进行快速查询

我一直在使用 MongoDB 来存储和查询无模式的 json 文档(约 10 百万条记录)。查询通常涉及查找具有匹配键值对的 json 文档并运行几秒钟。我正在寻找使查询运行得更快的方法,并遇到了 Redis 数据库。转移到 Redis 是个好主意吗?我的用例有更好的数据库吗?

另外,有人可以解释一下我如何在 Redis 中存储无模式的 json 对象(并且以后可以查询它们)吗?

谢谢!

0 投票
1 回答
1291 浏览

python - 关于在 Redis 中存储此数据 (JSON) 而不覆盖现有数据的建议?

我对我要问的所有方面都很陌生。

我正在尝试确定是否可以成功地将一些轮询指标存储为 Redis 中的 JSON 数据。

以一种方式,我已经设法做到了。以下 python 脚本将轮询设备,拉回 JSON 数据,然后使用 (RedisJSON - https://redislabs.com/blog/redis-as-a-json-store/ ) 我可以将该 json 数据推送到 Redis。

这是代码:

这是提取然后存储在 Redis 中的数据:

当我在 Redis 中检查“数据”时,我看到了被推送的数据/json:

到目前为止这么好它会出现吗?

问题是我不确定如何在不覆盖现有“数据”的情况下正确处理推送下一组数据?

我意识到这就是将它作为“数据”保存到 redis 的原因:

目标是拥有多组此类数据,因为它包括日期和时间。

我希望使用它来存储每 5 分钟为每个“service_groups”和它们包含的服务器提取的一小时这些指标。

所以我非常有兴趣学习和理解我如何去完成这个?

** 其他详细信息/对问题的回答 **

最终目标是能够使用某种图形/报告工具来访问数据并显示给定时间段内“service_group”的指标,以及扩展“service_group”并查看相关指标的能力与该“service_group”中的每个成员/服务器。

0 投票
1 回答
1578 浏览

json - redis中的rejson是否支持复杂的get查询?

我正在浏览rejson文档jsonget并且找不到与复杂查询相关的任何内容,例如:

JSON.GET key1 where key1.subkey1 == "test1 || key3.subkey6.subsubkey2 > 2"

有人知道是否redis支持这样的json输出逻辑吗?如果没有,有什么替代方案?

0 投票
0 回答
335 浏览

scala - 在 Redis 中存储和操作“json 列表”的最佳方法是什么?

客观的:

目标是能够在 Redis 中存储 json 列表并能够在 Redis 本身中对其进行操作。

问题陈述

问题在于,操作 JSON 列表需要我们将所有数据带入应用程序,然后才能对其进行任何合理的处理。例如,过滤 JSON 列表,其中 JSON 字符串针对某个 JSON 路径具有特定值,诸如此类。这减慢了应用程序的能力,违背了拥有 Redis 的目的。

我们正在考虑的可能解决方案

  • 我们正在考虑使用 RedisJSON 在 Redis 中原生支持 JSON,但它似乎不能满足我们的要求。如果我错了,请纠正我。[我对 Redis 非常陌生。]
  • 我们正在考虑的另一个解决方案是在 Redis 服务器本身上编写 Lua 脚本,或者使用scala-redis 之类的库在 Redis 上执行 Lua 脚本。

请建议我们:

  1. 如果有更好的方法在 Redis 中表示这样的数据?
  2. 如果 RedisJSON 或类似的模块可以解决我们的问题?
  3. 如果我们对使用像 scala-redis 这样的库是正确的?

请让我知道这是否适合这个问题,或者这个问题需要以更好的方式表达。

0 投票
1 回答
358 浏览

python - 在 Redis 上存储和访问复杂 JSON 对象的最快和最佳方式

我一直在使用 ReJSON( json.set) 在我的 redis 服务器上存储复杂的 JSON。例如:

一次访问一个键非常快。但是访问数月的数据并添加它需要相当多的时间。

是否有另一种更好的方法来存储/访问这些复杂的 json 结构:

1)因此,如果我只需要user_data,不必检索所有其他数据,然后过滤掉其余数据,例如:

按时测试后,我发现 99% 的时间都花在了获取和计算数据上。那么基于此,您认为我的代码需要更多优化吗?

0 投票
1 回答
687 浏览

python - rejson=py 示例不适用于 python 3.6

尝试使用 Python3 设置 ReJSON。我在 Windows (WSL) 中的 Ubuntu 16.04 上运行,并且 Redis 和 ReJSON 正常工作。

在https://github.com/RedisLabs/rejson-py文档中简化了 python以隔离问题:

最后一行错误:

我知道 obj 已经写好了,可以在 redis-cli 中看到:

任何帮助表示赞赏。

0 投票
2 回答
3505 浏览

redis - ERR 未知命令 'JSON.SET' - Rejson/Redis

我已按照教程运行:

但是当我尝试运行 redis-cli 然后运行 ​​json.get 时,我得到了:

模块列表返回零。谁能指导我如何使用 docker 运行 rejson?欣赏。

0 投票
1 回答
207 浏览

redis - 使用 ReJson 存储数值树

我想在树中插入固定长度的数值,并在稍后检查它们的存在。大多数数值都是相似的,因此将它们放在 a 中没有意义,SET因为我会浪费空间。

由于 ReJsonPATH期望键名具有“类似 Java”的命名约定,这就是我想出的:

因此,当我需要知道是否设置了“012”时,我需要检查是否"JSON.GET key ._0._1._2" == true.

最初,我尝试保存自然树值,例如:

但是我不能写任何PATH能够遍历这棵树的东西,无论是点还是括号形式。

有什么建议么?我应该坚持我强调的价值观和._a._b._c模式还是有更好的方法?

0 投票
1 回答
1093 浏览

redis - 如何使用 ReJSON 设置嵌套值(对象)

如果我使用 ReJSON 插入以下对象:

有没有办法“附加”一个嵌套结构?我想为示例添加“address.name”以获取以下 JSON:

我试图使用JSON.SET testing .address.name '"Imaginary Street 7"',但这会导致(error) ERR missing key at non-terminal path level.

文档内容如下:

当且仅当它是路径中的最后一个子对象时,才会将键(及其各自的值)添加到 JSON 对象(在 Redis ReJSON 数据类型键中)。

“address.name”不是路径中的最后一个孩子吗?我究竟做错了什么?