为什么要用etcd?可以用redis实现配置management/service发现等吗?

why use etcd?Can I use redis to implement configuration management/service discovery etc.?

学了几个小时的etcd,突然有个问题涌上心头。我发现redis完全可以覆盖etcd owns.Like key/value CRUD && watch的功能,而且redis使用起来非常简单。为什么人们选择 etcd 而不是 redis? 为什么? 我用谷歌搜索了一些 post,但没有 post 告诉我原因。

谢谢!

Redis将数据存储在内存中,这使得它的性能非常高但不是很耐用。如果redis服务器死了,很容易丢失数据。 Etcd 将数据存储在磁盘上的文件中,并在解析之前跨多个节点进行 fsync 以保证一致性,这使其非常耐用但性能不高。

这对 kubernetes 来说是一个很好的权衡,它使用 etcd 进行集群状态和配置,而不是用户数据。对于您可能在应用程序中使用 Redis 的用户会话数据之类的东西,这不是一个好的权衡,因为您需要极快的响应时间并且可以容忍一些数据丢失或不一致。