【发布时间】:2013-04-20 11:55:35
【问题描述】:
我正在开发一个 Java REST API,它使用来自 postgreSQL 数据库的客户端数据。
数字: .初期客户约600家 .他们中的一些人每隔几秒就发出一次请求
由于客户按请求付费,我们需要控制他们的成功请求数是否达到限制,并且在每次请求性能不佳后查询 postgresql 数据(更新 'hitsCounter' 字段的值),我们是考虑用redis实现一个缓存系统。
想法: 在客户端完成第一个请求后,我们从 postgresql 中检索他的数据并将其存储到 redis 缓存中。然后使用此缓存数据,例如增加“hitsCounter”键值,直到客户端停止执行请求。 同时,每隔几分钟,后台进程就会将数据从 redis 缓存持久化到 db 表中,所以最后我们会将更新后的数据返回到 postgresql,我们可以在以后处理它们。 p>
我认为它显然会提高性能,但我不确定这个“后台进程”。一个选项是检查缓存元素的 TTL,如果它小于某个值(这意味着客户端已完成请求),则保留数据。
我很想听听对此的一些意见。这是一个好主意吗?你知道一些更好的选择吗?
【问题讨论】:
-
你设法让它工作了吗?你是如何做到 Redis-to-Postgres 持久化的?
标签: java postgresql rest architecture redis