如何使用 Redis 通过 Postgresql 进行 LRU 缓存?

cma*_*cma 3 php postgresql caching redis

我是 Redis 的新手,想知道如何将 Redis 和 PostgreSql 一起使用——特别是仅将 Redis 用于 Postgres 中的 LRU 缓存。

Redis 连接Postgres 有什么特殊的配置吗?

那么如果我想存储数据,我应该将它存储在Postgres db中吗?如果是这样,Redis 是做什么的?

谢谢。

Did*_*zia 5

我认为您误解了 Redis 或 memcached 之类的内存存储可以为您做什么。

它们未连接到 PostgreSQL 或任何其他 RDBMS。您的应用程序的工作是在两个存储中写入数据:永久存储(在您的情况下为 PostgreSQL)和临时存储(Redis)。

Redis 和 memcached 不提供很多连接功能。对于缓存,它们具有相当简单且不引人注目的行为。管理缓存的智能部分在应用程序端,定义它是您的工作。

你可以想象几种策略:

  • 每次写入 RDBMS 时,都会写入缓存。每次需要读取数据时,先在缓存中读取。如果未找到任何内容,则从 RDBMS 读取并将其写回缓存。

  • 每次在 RDBMS 中写入时,您只是使缓存中的数据无效(删除它)。每次需要读取数据时,先在缓存中读取。如果未找到任何内容,则从 RDBMS 读取并将其写回缓存。

棘手的部分是明确定义有关数据一致性的策略(在 RDBMS 和缓存之间)。