Redis可以写出像PostgreSQL这样的数据库吗?

noa*_*ale 15 python django postgresql redis redis-cache

我一直在使用PostgreSQL.我的所有数据都存在于Postgres中.我最近研究过redis,它有很多强大的功能,否则需要在Django(python)中做几行.Redis数据是持久的,只要它运行的机器没有停机,您可以将其配置为每1000个键或每5分钟左右写入存储到磁盘的数据,具体取决于您的选择.

Redis会创建一个很好的缓存,它肯定会取代我在python中编写的很多函数(投票给用户的帖子,查看朋友列表等等).但我担心的是,所有这些数据都需要转化为postgres.我不相信将这些数据存储在redis中.我认为redis是一种临时存储解决方案,可以快速检索信息.它非常快,远远超过对postgres进行重复查询.

我假设从技术上将redis数据写入数据库的唯一方法是保存()通过Django从redis到postgres数据库的'get'查询得到的任何东西.

这是我能想到的唯一解决方案.你知道这个问题的其他解决方案吗?

Cra*_*ger 20

Redis越来越多地用作缓存层,就像更复杂的memcached一样,并且在这个角色中非常有用.您通常使用Redis作为您想要持久的数据的直写缓存,并回写您可能希望累积的数据然后批量写入(您可以承受丢失最近的数据).

PostgreSQL LISTENNOTIFY系统对于选择性高速缓存失效非常有用,可让您在PostgreSQL中更新时从Redis中清除记录.

为了将它与PostgreSQL结合起来,您会发现Andrew Dunstain和Dave Page正在开发的Redis外部数据包装提供程序非常有趣.

我不知道有任何工具可以使Redis成为PostgreSQL的透明回写缓存.他们的数据模型可能太不相同,无法正常工作.通常,您使用listen/notify将更改写入PostgreSQL并使其Redis缓存条目无效,或者在Redis中对更改进行排队,然后让您的应用程序将其读出并将其写入Pg中.