软考系统架构之案例篇(Redis相关概念)

案例篇-Redis相关概念

  • 1. Redis与Memcache能力对比
  • 2. Redis集群切片的常见方式
  • 3. Redis分布式存储方案
  • 4. Redis数据分片方案
  • 5. Redis持久化

1. Redis与Memcache能力对比

工作 MemCache Redis
数据类型 简单 key/value 结构 丰富的数据结构
持久性 不支持 支持
分布式存储 客户端哈希分片/一致性哈希 多种方式,主从、Sentinel、Cluster 等
多线程支持 支持 支持(Redis5.0及以前版本不支持)
内存管理 私有内存池/内存池
事务支持 不支持 有限支持
数据容灾 不支持,不能做数据恢复 支持,可以在灾难发生时,恢复数据

2. Redis集群切片的常见方式

集群切片方式 核心特点
客户端分片 在客户端通过key的hash 值对应到不同的服务器。
中间件实现分片 在应用软件和 Redis 中间,例如:Twemproxy、Codis 等,由中间件实现服务到后台Redis节点的路由分派。
客户端服务端协作分片 客户端与服务端协作完成分片处理。

3. Redis分布式存储方案

分布式存储方案 核心特点
主从(Master/Slave)模式 一主多从,故障时手动切换。
哨兵(Sentinel)模式 有哨兵的一主多从,主节点故障自动选择新的主节点。
集群(Cluster)模式 分节点对等集群,分slots,不同slots的信息存储到不同节点。

4. Redis数据分片方案

分片方案 分片方式 说明
范围分片 按数据范围值来做分 例:按用户编号分片,0-999999 映射到实例A;1000000-1999999映射到实例 B。
哈希分片 通过对key进行hash运算分片 可以把数据分配到不同实例,这类似于取余操作,余数相同的,放在一个实例上。
一致性哈希分片 哈希分片的改进 可以有效解决重新分配节点带来的无法命中问题。

5. Redis持久化

RDB:传统数据库中快照的思想。指定时间间隔将数据进行快照存储。

AOF:传统数据库中日志的思想,把每条改变数据集的命令追加到AOF 文件末尾,这样出问题了,可以重新执行AOF文件中的命令来重建数据集。

对比维度 RDB持久化 AOF 持久化
备份量 重量级的全量备份,保存整个数据库 轻量级增量备份,一次只保存一个修改命令
保存间隔时间 保存间隔时间长 保存间隔时间短,默认1秒
还原速度 数据还原速度快 数据还原速度慢
阻塞情况 save会阻塞,但bgsave 或者自动不会阻塞 无论是平时还是AOF重写,都不会阻塞
数据体积 同等数据体积:小 同等数据体积:大
安全性 数据安全性:低,容易丢数据 数据安全性:高,根据策略决定

你可能感兴趣的:(系统架构设计师,系统架构,redis,数据库,软考,系统架构师)