我正在开发一个 Java REST API,它使用来自 postgreSQL 数据库的客户端数据。
数字: 。一开始约有600个客户。他们中的一些人每隔几秒钟就发出一次请求
由于客户端按请求付费,我们需要控制他们的成功请求数是否达到限制,并且在每次请求后查询postgresql数据(更新'hitsCounter'字段的值)在性能方面很差,我们正在考虑实现带有redis的缓存系统。
想法: 在客户端完成第一个请求后,我们从 postgresql 中检索他的数据并将其存储到 redis 缓存中。然后使用此缓存数据,例如增加“hitsCounter”键值,直到客户端停止执行请求。 并行地,每隔几分钟,后台进程就会将数据从 redis 缓存持久化到 db 表中,因此最后我们将更新的数据返回到 postgresql,我们可以在以后处理它们。
我认为它显然会提高性能,但我不确定这个“后台进程”。一个选项是检查缓存元素的 TTL,如果它小于某个值(这意味着客户端已完成请求),则保留数据。
我很想听听对此的一些意见。这是一个好主意吗?你知道一些更好的选择吗?