1

我正在构建一个预测高负载的项目。我需要一些缓存系统,而 Tarantool 看起来非常适合我的任务。我很好奇是否可以将 Tarantool 用作缓存系统(人们说它具有某种智能缓存),但是将 Postgres 串联作为主存储,因为将来我们想向客户端等显示一些统计数据,我怀疑 Tarantool 没有复杂的分组和加入可能性。

好的,我的问题是 Tarantool 是否有可能在某种事务中缓存并保存到 Postgres 中,所以我永远不会出现不一致。抱歉这里没有显示任何代码,我只是没有。

4

2 回答 2

3

实际上,您的问题是关于:如何将数据从主存储复制到其他子系统。

我可以在这个问题上分享我的经验。我将 Postgres 与 Redis、弹性搜索一起使用。我只是将一些表、数据复制到 Redis 和 Elastic 中。您可以在 *internet 中找到有关它的更多信息。

我安装的 PostgreSQL 使用以下规则进行扩展:应用程序使用副本进行读取,而 master 仅用于写入。地理搜索请求转到 Redis 集群;全文搜索请求转到 Elastic 集群。

回到你的话题。您可以使用任何工具,但您还必须考虑请求的类型。例如:“它会是地理搜索吗?”,或者“它会是大连接吗?如果是,那么它不适用于 Tarantool”,还有什么其他的吗?但是,如果您有简单的 Key-Value,那么 Tarantool 在这里很好。

附言

我也可以建议阅读缓存模式:https ://www.computerweekly.com/feature/Write-through-write-around-write-back-Cache-explained

"* 例如:https ://github.com/bucardo/bucardo "

于 2019-04-02T15:49:48.263 回答
1

Tarantool 手册https://www.tarantool.io/en/doc/2.2/reference/reference_rock/dbms/ 描述了如何从 Tarantool 应用服务器调用 PostgreSQL。没有一致性保证,例如应用程序必须对 Tarantool 数据库事务进行回滚,并对 PostgreSQL 数据库事务进行单独回滚,并确保它们都工作。

于 2019-12-25T15:55:08.977 回答