问题标签 [redis]
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.
c++ - 如何在 C++ 程序中使用 Redis?
在 C++ 程序中使用 Redis DB 的最佳方式是什么?
c++ - C++ 如何使用和传递一个 3 维字符数组?
我正在尝试构建一个 char 数组来存储函数的返回值。在以下函数中,数据存储在 *****valv** 中。如何构建外部变量来访问数据?
解决方案:
谢谢大家!
database - 你如何混合 SQL DB 与 Key-Value 存储(即 Redis)
我正在审查我的代码并意识到我花费了大量时间
- 从数据库中获取行,
- 格式化为 XML,
- AJAX GET 到浏览器,然后
- 转换回哈希 javascript 对象作为我的本地数据存储。
在更新时,我必须反转这个过程(除了使用 POST 而不是 XML。)
刚开始研究 Redis,我想我可以节省大量时间将对象保存在服务器上的键值存储中,并且只需使用 JSON 直接传输到 JS 客户端。但我虚弱的头脑无法预料离开 SQL DB 会放弃什么(即我害怕放弃 GROUP BY/HAVING 查询)
对于我的数据,我有:
- 多对多关系,即 obj-tags、obj-groups 等。
- 通过组合查询对象,即 WHERE tag IN ('a', 'b','c') AND group in ('x','y')
- 自连接,即每个对象的所有标签 WHERE tag='a' (sql group_concat())
- 很多外连接,即OUTER JOIN rating ON o.id = rating.obj_id
- 和提要,这似乎是 REDIS 的强项
您如何成功地混合键值和 SQL 数据库?
例如,使用 SQL RANGE 查询(即 WHERE obj.id IN (1,4,6,7,8,34,876,9879,567,345, ...), 或相反亦然?
欢迎提出想法/建议。
database - 用键值存储中的索引模拟数据库表的最简单方法是什么?
用键值存储中的索引模拟数据库表的最简单方法是什么?键值存储没有范围查询和有序键。
我想模拟的东西(按优先顺序):
- 创建表
- 添加列
- 创建索引
- 基于主键的查询
- 基于任意列的查询
ruby-on-rails - Resque 或 Gearman - 为后台作业选择合适的工具
我们正在开发一个 Web 应用程序,其中大约 50% 的写入请求,我们最终将数据推送到多个数据存储,并在这些数据存储中插入和更新大量记录。为了提高响应时间,我们希望在后台异步处理此类请求。
我们的 Web 应用程序是用 Ruby on Rails 编写的。
我倾向于的两个解决方案是 Resque 和 Gearman。
Resque:这里有更多信息:http: //github.com/blog/542-introducing-resque Resque 似乎非常适合 Ruby,它专门用于后台作业处理。“后台作业可以是响应执行的任何 Ruby 类或模块。您现有的类可以轻松转换为后台作业,或者您可以创建专门用于工作的新类。”
Gearman:它不仅仅适用于异步处理的后台作业,但它绝对可以做到这一点。显然更健壮,或者看起来如此。Gearman 的另一个优点是,虽然您的客户端代码可能在 Ruby 中,但工作代码可能在 PHP 中。虽然现在我们完全是 Ruby on Rails 应用程序,但谁知道将来我们是否可能想要使用 PHP 或其他东西,这取决于手头的工作。
你会推荐什么?你有这两者中的任何一个的经验吗?在两者之间进行选择时,我应该记住哪些现实生活中的生产挑战?我什至在这里比较苹果和苹果吗?
ruby-on-rails - 如何同时使用 resque-scheduler 和 resque-status?
我有resque-scheduler在 rails 应用程序中工作正常。现在我需要能够跟踪状态并从队列中删除作业。我简要地看了一下resque-status,从我所看到的来看,如果我能让它与 resque-scheduler 很好地配合,那将是完美的。
然而,救援状态使用create
which wrapsenqueue
和 resque-scheduler 使用enqueue_at
我目前使用的扩展。有没有一种简单的方法可以让他们一起玩而无需过多地破解插件?有没有人已经这样做并且愿意给我一些提示?
database - redis 是持久数据存储吗?
我所说的“持久”是指服务器随时可能崩溃,只要磁盘保持完好,就不会丢失任何数据(参见ACID)。似乎这就是日志模式的用途,但是如果您启用日志,这不会破坏对内存数据进行操作的目的吗?读取操作可能不受日志的影响,但似乎日志会降低您的写入性能。
python - Twisted:为什么将延迟回调传递给延迟线程会使线程突然阻塞?
我尝试使用 txredis(用于 redis 的非阻塞扭曲 api)作为我正在尝试使用我正在处理的 scrapy 项目设置的持久消息队列,但没有成功。我发现虽然客户端没有阻塞,但它变得比原本应该慢得多,因为反应器循环中的一个事件被分成了数千个步骤。
因此,我尝试使用 redis-py(常规阻塞扭曲 api)并将调用包装在延迟线程中。它工作得很好,但是我想在调用 redis 时执行内部延迟,因为我想设置连接池以尝试进一步加快速度。
下面是我对延迟线程的扭曲文档中的一些示例代码的解释,以说明我的用例:
这是我对连接池的更改,它使延迟线程中的代码阻塞:
所以我的问题是,有谁知道为什么我的更改会导致延迟线程阻塞和/或任何人都可以提出更好的解决方案?
redis - Redis - 数据大小可以大于内存大小吗?
我对 Redis 比较陌生,在使用它之前,我想了解一些重要的(对我而言)细节。所以....
Redis 使用 RAM 和 HDD 来存储数据。RAM用作快速读/写存储,HDD用于使这些数据持久化。当 Redis 启动时,它会将所有数据从 HDD 加载到 RAM,还是仅将经常查询的数据加载到 RAM?如果我在 HDD 上有 500Mb Redis 存储,但我只有 100Mb 或 RAM 用于 Redis,该怎么办。我在哪里可以读到它?
redis - redis 超时与 predis
我正在使用 redis 和 php(predis 在http://github.com/nrk/predis/)并且经常遇到超时。堆栈跟踪显示:
这种情况一直发生,我不知道为什么。有人有什么想法吗?