doulu1914
doulu1914
2014-08-27 14:00
浏览 158

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

I'm new to Redis and wondering how to use Redis and PostgreSql together — specifically using Redis just for LRU caching in Postgres.

Is there any special configuration for connecting Redis to Postgres?

Then if I want to store data, should I store it in Postgres db? If so, what does Redis do?

Thanks.

图片转代码服务由CSDN问答提供 功能建议

我是Redis的新手,想知道如何一起使用Redis和PostgreSql - 特别是使用Redis进行LRU缓存 Postgres。

是否有任何特殊配置可以将Redis连接到Postgres?

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

谢谢。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dongtui4038
    dongtui4038 2014-08-27 19:32
    已采纳

    I think you misunderstand what memory stores like Redis or memcached can do for you.

    They are not connected to PostgreSQL or any other RDBMS. It is the job of your application to write the data in both stores: the permanent store (PostgreSQL in your case) and the transient one (Redis).

    Redis and memcached do not offer many connectivity features. For caching, they have a rather simple and unobtrusive behavior. The smart part to manage the cache is on application side, and it is your job to define it.

    You can imagine several strategies:

    • each time you write in the RDBMS, you write in the cache. Each time you need to read the data, read first in the cache. If nothing is found, read from the RDBMS and write it back to the cache.

    • each time you write in the RDBMS, you just invalidate the data in the cache (delete it). Each time you need to read the data, read first in the cache. If nothing is found, read from the RDBMS and write it back to the cache.

    The tricky part is to clearly define a policy regarding the consistency of the data (between the RDBMS and the cache).

    点赞 评论
  • dpwjx32578146
    dpwjx32578146 2014-08-27 19:54

    You can use Redis as LRU cache - I am assuming that you are using Redis for in-memory operations only and PostgreSQL as your persistent datastore. The following URL sheds more light on using Redis as LRU cache:

    http://redis.io/topics/lru-cache
    

    You will need to write to both Redis and PostgreSQL (Redis will not write to PostgreSQL). It would be a good idea to briefly test and compare results against other options such as Memcached to figure out the best approach for your use case.

    Also, the LRU cache implementation in Redis is different between v2.6 and v2.8 (not sure if the 2.8 changes were backported to v2.6 or not).

    In case you are not familiar, you can persist data onto the disk vai Redis as well though you should be aware of memory limitations of using Redis as your sole data store (and impact on Redis for disk persistence).

    点赞 评论

相关推荐