一尘不染

Redis可以写出到PostgreSQL之类的数据库吗?

redis

我使用PostgreSQL的时间最长。我所有的数据都保存在Postgres中。我最近研究了redis,它具有许多强大的功能,这些功能否则需要在Django(python)中执行几行。只要运行它的机器没有故障,Redis数据就可以持久保存,您可以配置它以每1000个密钥或每5分钟左右一次将其存储的数据写出到磁盘上,具体取决于您的选择。

Redis会提供很好的缓存,并且肯定会取代我用python编写的许多功能(投票给用户的帖子,查看其朋友列表等)。但我担心的是,所有这些数据将需要如何转换为postgres。我不信任将这些数据存储在Redis中。我认为redis是一种用于快速检索信息的临时存储解决方案。它的速度非常快,远远超过对postgres进行重复查询的重要性。

我假设我可以从技术上将redis数据写入数据库的唯一方法是save(),无论我通过Django从redis到postgres数据库的“
get”查询中得到什么。

那是我能想到的唯一解决方案。您是否知道其他解决方案?


阅读 1088

收藏
2020-06-20

共1个答案

一尘不染

Redis越来越多地用作缓存层,就像更复杂的Memcached一样,在此角色中非常有用。通常,您可以将Redis用作要保留持久性数据的 直写式
高速缓存,而对于要积累然后进行批量写入的数据(例如,可以承受丢失近期数据的情况),则应使用 回写式

PostgreSQL
LISTENNOTIFY系统对于执行选择性缓存失效非常有用,当您在PostgreSQL中更新记录时,可以从Redis中清除记录。

要将其与PostgreSQL结合使用,您会发现Andrew Dunstain和Dave
Page正在开发的Redis外部数据包装器
非常有趣。

我不知道有任何工具可以使Redis成为PostgreSQL的透明回写缓存。他们的数据模型可能太不同而无法正常工作。通常,您将更改写入PostgreSQL,并使用监听/通知缓存管理器工作程序来使它们的Redis缓存条目无效,或者在Redis中排队更改,然后让您的应用读出这些更改并将它们成块写入Pg。

2020-06-20