- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以(和/或有效)使用 Postgres 的 hstore 作为 celery 的代理?
我被限制(缺少一些非常有说服力的理由)使用 Postgres 数据库。我有一个带有 celery 任务的 Django 应用程序。目前我正在使用标准数据库支持,但 celery 文档强烈建议不要将这种方法用于非常小的任务队列之外的任何事情。当我遇到一些关于 Postgres 的 hstore 功能的信息,以及它提供与 redis 等效功能的建议时,我正在考虑安装 redis。
不过,我还没有看到任何有关将 hstore 专门用于 celery 的信息,如果它真的可以替代 redis,这似乎很奇怪。查看
处的 celery 后端代码 https://github.com/celery/celery/blob/master/celery/backends/base.py
看起来基本的 celery KeyValueStoreBackend 是一个非常简单的 api:
def get(self, key):
raise NotImplementedError('Must implement the get method.')
def mget(self, keys):
raise NotImplementedError('Does not support get_many')
def set(self, key, value):
raise NotImplementedError('Must implement the set method.')
def delete(self, key):
raise NotImplementedError('Must implement the delete method')
def incr(self, key):
raise NotImplementedError('Does not implement incr')
但在我可能投入大量时间之前,似乎值得问一下是否有什么我遗漏的东西会反对使用 hstore 实现这个 API 并将其用作 celery 后端。
例如。 celery 是否有此 API 未捕获的要求(例如原子性、可伸缩性、负载下的可靠性)?使用 hstore 实现它是否无法对现有数据库后端提供实质性改进?我对 celery 还很陌生,从未使用过 hstore,所以我不确定我忽略了什么(如果有的话)。
最佳答案
hstore
绝对不提供“与 redis 等效的功能”。
hstore
字段不是字段中的键值数据库。尝试以这种方式使用它会导致痛苦和糟糕的表现。必须为每次 更新重写包含hstore
字段的整个 记录。此外,与关系数据库中的任务队列相同的挑战也适用于 hstore
,这意味着您最多只能获得单个 worker 的性能,您不会获得并发性,即使它可能表面上看起来像你。
所有 hstore
都是数据库字段中的 HashMap 。它非常有用,但它并不神奇,它不会让您摆脱使用 RDBMS 进行消息队列的潜在挑战。
如果你想要消息队列,就使用消息队列。 PGQ是一个不错的选择。或者检查专用的消息队列工具,如 ZeroMQ。
关于postgresql - 将 Postgres hstore 与 celery 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13871031/
Postgres 新手,使用 v9.3,想利用 hstore。 当我尝试连接两个 hstore 值时,出现奇怪的错误: SELECT p.properties->'name' || p.propert
我有一个定期用新数据更新的汇总表。其中一列是 hstore 类型。当我更新新数据时,如果键存在,我想将键的值添加到键的现有值,否则我想将对添加到 hstore。 现有数据: id sum
我在数据库中有一个现有模型。我想用一个 hstore 字段来增强它。我安装了 hstore Postgres 扩展,django-hstore 应用程序,更改了 django 项目中的适当设置: SO
我正在查询 pgsql 数据库以查找在 hstore 字段中具有特定键的行: select DISTINCT from (select id, exist(data, ‘exercise_quiz’)
我通过以下方式在我的 MacOS X 上安装了 RubyOnRails 4.1.4 和 PostgreSQL: brew install postgresql 当我尝试迁移这个时: CREATE EX
当我运行 Django 服务器时,出现以下错误: class HStoreDescriptor(models.fields.subclassing.Creator): AttributeErr
我需要让 Hstore 为我正在处理的 Rails 应用程序工作。我正在运行 Linux Mint 18 和 psql(9.6.1,服务器 9.5.5)和 postgresql-contrib 9.6
在我的实际项目中,我正沉浸在“大数据”问题中。我们需要存储一个大数据库,其中读取性能比写入更重要(数据更改最少且受控)。 有数百万个寄存器,每个寄存器都有很多键/值信息。 我正在测试 noSQL 数据
我正在使用 Postgresql V 9.1: SELECT 'k=>name, v=>Nava Ratna Secondary School'::hstore; 此代码返回错误: ERROR: S
我想知道在 PostgreSQL 中是否可以遍历当前函数的所有可用输入参数并将这些参数 (key=>value) 附加到 hstore 变量。 hstore-key = 给定输入参数/参数的名称...
我在这里问了类似的问题:hstore value with space。并由用户解决:Clodoaldo Neto。现在我遇到了下一个包含单引号的字符串的情况。 SELECT 'k=>"name",
假设我有一个博客数据库,其中 posts 表将标签存储在 hstore 中。 键代表标签 ID,值是标签名称。 例如:1=>'测试', 56=>'SQL', 42=>'Java' 我想在带有标签过滤器
我发现这个查询: SELECT properties->'somekey' IS NOT DISTINCT FROM 'someValue' FROM myTable; 在 PostgreSQL 9.
我正在使用 PostgreSQL 9.4。我需要将子查询转换为 hstore。我有这个查询:select code, value_string from dir。它返回 code | value_s
我在决定使用哪种方法时遇到了一些麻烦。 我有几个实体“类型”,我们称它们为 A、B 和 C,它们共享一定数量的属性(大约 10-15 个)。我创建了一个名为 ENTITIES 的表,并为每个公共(pu
我想在 hstore 列中的特定键上创建唯一索引或约束(如果该键存在)。我希望能在另一个问题的某处找到答案: Practical limitations of expression indexes i
当我在不传递任何参数的 Django 模型中使用 hstore.DictionaryField() 并在 Djano 管理中注册我的模型时,我可以在管理界面中即时创建新的键值对行。 当我在模式模式下使
尝试将 hstore (postgreql) 中的值插入到更通用的表中 在我的汽车表中,我有这些字段 id fields (hstore) 我的存储表,我有这些字段 id key value car_
我想知道是否有人知道这个在 PostgreSQL 9.2 中的 hstore 列上的简单查询出了什么问题 查询在 pgAdmin 中运行 select attributeValue->"CODE_MU
假设我有一个定义如下的表: CREATE TABLE test ( values HSTORE NOT NULL ); 想象一下,我插入了几条记录,结果如下: values -----------
我是一名优秀的程序员,十分优秀!