当前位置: 首页 > 面试题库 >

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

汪臻
2023-03-14
问题内容

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

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

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

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


问题答案:

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

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

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

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



 类似资料:
  • 问题内容: 我运行了此命令以访问我的Redis服务器。 现在,我想显示所有数据库。 请告诉我这个命令。 谢谢。 问题答案: 没有命令可以执行此操作(例如您可以使用MySQL进行操作)。Redis数据库的数量是固定的,并在配置文件中设置。默认情况下,您有16个数据库。每个数据库都用数字(而不是名称)标识。 您可以使用以下命令来了解数据库的数量: 您可以使用以下命令列出定义了某些键的数据库: 请注意,

  • Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 目录结构CentOS /etc/redis.conf: 配置文件,用来配置 Redis 端口、数据存储、以及优化参数 /etc/redis-sentinel.conf: 哨兵配置文件,用来

  • 我需要将一些列表类型的数据存储到MYSQL数据库中。是否可以将其存储在MYSQL中,如果可以,那么保存此数据的字段的数据类型应该是什么? 提前谢谢。

  • 问题内容: 使用H2, 如果数据库尚不存在,则创建数据库。 但是,在Postgres中,不会创建不存在的数据库,因此会引发异常,例如“ DB不存在”。有没有一种方法可以配置Postgres按需创建不存在的数据库? 以下配置文件可用于重现该问题: 使用H2可以正常工作: 使用Postgres失败 问题答案: 该工具只能为现有架构创建表,而不能为您创建架构。在运行该工具之前,数据库必须存在。这是因为数

  • 问题内容: 反正是有创建的Redis数据库,在那里密钥 必须 在一定时间后会过期吗?我知道我可以使用命令来使单个密钥失效,但是由于无论如何我都会在一定时间后使每个密钥失效,因此最好在Redis配置文件中指定此行为。 问题答案: 不可以,Redis(v3.2及更高版本)不提供自动设置新创建键的TTL的方法。您必须为创建的每个键显式设置它。

  • 15.1 Redis简介 Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启后可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型(hash)的数据,同时还提供包括string(字符串)、list(链表)、set