我学习了etcd几个小时,但是突然有一个问题问了我。我发现redis完全能够覆盖etcd所拥有的功能。就像键/值CRUD && watch一样,redis的使用非常简单。人们为什么选择etcd而不是redis? 为什么? 我在Google上搜索了一些帖子,但没有帖子告诉我原因。
谢谢!
答案 0 :(得分:1)
Redis 将数据存储在内存中,这使得它的性能非常高但不是很耐用。如果redis服务器挂了,很容易丢失数据。 Etcd 将数据存储在磁盘上的文件中,并在解析之前跨多个节点执行 fsync 以保证一致性,这使得它非常耐用但性能不佳。
这对于 kubernetes 来说是一个很好的权衡,它使用 etcd 进行集群状态和配置,而不是用户数据。对于您可能在应用中使用 redis 的用户会话数据之类的内容,这不是一个好的权衡,因为您需要极快的响应时间并且可以容忍一些数据丢失或不一致。