栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

没有插件就可以在Heroku上进行Redis吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

没有插件就可以在Heroku上进行Redis吗?

在dyno上运行redis是一个有趣的想法。您可能需要创建一个redis
buildpack,以便您的dynos可以下载并运行redis。由于“
redis除了可以正常运行的GCC编译器和libc外没有其他依赖项”,
从技术上讲应该是可能的。

但是,这可能会遇到一些问题:

  1. Heroku dynos没有静态IP地址


dynos没有静态IP地址..您永远无法通过IP直接访问dyno”

即使您在dyno上设置并运行Redis,我也无法找到一种定位该dyno实例并将其发送给redis请求的方法。这意味着您的Redis服务器可能必须与Web服务器/主应用程序在相同的dyno上运行。

意味着,如果您尝试通过创建更多的Web
dynos来扩展应用程序,则还将创建更多的本地redis实例。它们之间将不会共享数据。这并不是一个特别可扩展的设计,但是如果您的应用足够小,只需要一次网络测功就可以了。

  1. Heroku dynos具有临时文件系统

“任何其他dyno中的进程都看不到已写入的文件,并且在dyno停止或重新启动时,所有写入的文件将被丢弃”

默认情况下,Redis将其RDB文件和AOF日志写入磁盘。您需要定期将这些备份到某个位置,以便在dyno重新启动后进行获取和还原。请参阅有关Redis持久性的文档。

  1. Heroku测功机经常重启


Dynos每天至少循环一次,或者每当dyno歧管检测到底层硬件中的故障时,都要进行循环。”

每次dyno启动时,您将需要能够启动您的Redis服务器并还原数据。

  1. Heroku dynos具有512MB RAM

“每个dyno分配了512MB的内存以在其中运行”

如果您的Redis服务器与Web服务器在同一台dyno上运行,请减去主应用程序所需的RAM。您需要多少Redis内存?

以下是一些尝试估计和跟踪Redis内存使用的问题:

* [Redis:数据库大小与内存之比?](https://stackoverflow.com/questions/4731873/redis-database-size-to-memory-ratio)* [分析Redis内存使用情况](https://stackoverflow.com/questions/5532701/profiling-redis-memory-usage)

--

总体: 我建议阅读12个因子应用程序,以进一步了解heroku的预期应用程序模型。

简短的版本是,dynos旨在成为可以轻松创建和丢弃以满足需求的独立工作者,并且dynos访问各种资源以读取或写入数据并为您的应用服务。Redis实例是资源的示例。从上面的项目中可以看到,通过使用Redis附加组件,您将获得可以保证是静态,稳定和可访问的内容。

阅读材料:

  1. http://www.12factor.net/-特别是流程和服务
  2. Heroku过程模型
  3. Heroku博客-过程模型


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/388176.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号