一、简介
我们之前用了redis,那么好用为什么还要来用etcd呢,这里就来和大家聊聊为什么有的业务场景选择etcd。
分析:在当今的分布式系统中,数据存储及一致性相当重要。etcd和redis都是我们最受欢迎的开源分布式数据存储的解决方案,但是他们有着不同的试用场景。下面我个人对其中二个的见解。
1.数据模型
etcd:键值存储,支持原子性和分布式事务,树状结构,键可为任意字节数组,值可任意二进制
redis:键值存储,支持多种数据结构:字符串,哈希,列表,集合,有序集合,可存储多种类型数据
2.一致性
etcd:强一致性,副本始终保持相同状态,就是说,你写了数据到主节点,从节点会立即更新,保证数据一致性及可用性
redis: 保证最终一致性,存在短暂的数据不一致的情况,其持久化机制为:rdb和aof,以保证数据最终一致性
3. 可用性
etcd: 高可用,支持Raft分布式一致性算法,就是说即使有节点挂掉了也会保证数据一致性及其他节点的可用性
redis: 高可用,主从复制和哨兵选择模式,保证数据在最短时间内可以恢复
4.性能选择
etcd: 高性能,可并发读写,高吞吐量,低延迟
redis: 高性能,基于内存的存储,多种结构储存方式,读取速度快
5.可扩展性
etcd: 水平扩展,多节点可提高集群的容量及性能
redis: 垂直扩展,添加多个节点的内存和cpu资源可提交性能
6.特点对比
7.场景对比
etcd:
分布式协调服务,如服务发现、配置管理、锁服务
存储需要强一致性、高可用性和并发读写的关键数据
Redis:
缓存服务,加速数据库或其他慢速存储的访问
会话管理,存储用户会话信息和状态
实时分析,存储和处理流数据
8.实战用法
etcd:
使用强一致性特性来保证数据的可靠性和可用性
启用 Raft 日志压缩以减少存储空间占用
监控集群健康状况,及时发现和解决问题
Redis:
根据数据访问模式选择合适的持久化策略
使用主从复制或哨兵模式提高可用性和故障恢复能力
优化数据结构以提高查询性能
9.总结
etcd 和 Redis 都是分布式数据存储的优秀选择,但它们具有不同的特性和适用场景。etcd 提供强一致性、高可用性和并发读写能力,适合于需要这些特性的场景。Redis 提供多种数据结构、高性能和读密集型特性,适合于缓存、会话管理和实时分析等场景。通过理解它们的差异,开发人员可以根据具体需求选择最合适的解决方案。
本文部分参考原文链接:https://blog.csdn.net/star19830909/article/details/136828995
标签:存储,区别,redis,etcd,一致性,保证数据,节点 From: https://www.cnblogs.com/qxlzzj/p/18101733