redis - 为什么要使用etcd?我可以使用redis来实现配置管理/服务发现等吗?
问题描述
学了几个小时的etcd,突然想到一个问题。我发现redis完全能够覆盖etcd拥有的功能。比如key/value CRUD && watch,redis使用起来非常简单。为什么人们选择 etcd 而不是 redis?为什么?我用谷歌搜索了一些帖子,但没有帖子告诉我原因。
谢谢!
解决方案
Redis 将数据存储在内存中,这使其性能非常高,但不是很耐用。如果redis服务器死了,很容易丢失数据。Etcd 将数据存储在磁盘上的文件中,并在解析之前跨多个节点执行 fsync 以保证一致性,这使得它非常耐用但性能不高。
对于 kubernetes 来说,这是一个很好的权衡,它使用 etcd 进行集群状态和配置,而不是用户数据。对于您可能在您的应用程序中使用 redis 的用户会话数据之类的东西,这不是一个很好的权衡,因为您需要极快的响应时间并且可以容忍一些数据丢失或不一致。
推荐阅读
- sql - SQL - 百分比计算
- flutter - 如何在 Flutter 中渲染 HTML 标签并限制行数
- android - 如何在 Flutter 中使用 Webview 打开浏览器?
- laravel - 雄辩的“何时”方法又一个“何时”
- python - 将 Series 中的每个值替换为其相对排名
- python - 将 PDF 报告排序到正确的目录“TypeError:预期的 str、字节或 os.PathLike 对象,而不是列表”
- angular - 部署到heroku时,简单的角度服务没有上下文(this = undefined)?
- c - Gtk3 - 如何在我的 GtkApplication 中通过 GAction 收听加速器?
- swift - 如何用数据数组填充 UICollectionView?
- excel - 从源文件夹到目标文件夹的文件夹列表复制vba