php - 如何将 Redis 用于 Postgresql 的 LRU 缓存?

标签 php postgresql caching redis

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

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

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

谢谢。

最佳答案

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

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

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

你可以想象几种策略:

  • 每次在 RDBMS 中写入时,都是在缓存中写入。每次需要读取数据时,先在缓存中读取。如果没有找到,则从 RDBMS 读取并将其写回缓存。

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

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

关于php - 如何将 Redis 用于 Postgresql 的 LRU 缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25529189/

相关文章:

php - 按最后一个值对 MySQL 结果排序

php - 在 PHP 中显示最近日期和分页的信息

c# - 具有身份的 Linq2db 插入未按预期工作

javascript - $http 的 Angular IE 缓存问题

asp.net - 什么可能导致 Azure 角色内缓存进程线性内存增长?

PHP mysql创建树状层次结构及其计数

Php 计数不适用于我的通知

postgresql - SELECT .. INTO 在 PL/pgSQL 中创建表

postgresql - 用于时间序列的 Postgres hstore

nhibernate - Entity Framework 和 NHibernate - 缓存仍然是服务层的职责吗?