Redis
2020-10-15 17:41:28 0 举报
AI智能生成
redis 高可用 简单梳理总结 备忘
作者其他创作
大纲/内容
基本数据结构
字符String
散列Hash
列表List
集合Set
有序集合Zset
高可用
持久化
RDB方式
介绍:RDB 持久化是将当前进程中的数据生成快照保存到硬盘(因此也称作快照持久化),保存的文件后缀是 RDB;当 Redis 重新启动时,可以读取快照文件恢复数据
触发条件
手动触发
save 命令和 bgsave
自动触发
在配置文件中通过 save m n,指定当 m 秒内发生 n 次变化时,会触发 bgsave。
常用配置
save m n
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb:RDB 文件名
dir ./:RDB 文件和 AOF 文件所在目录
AOF方式
介绍:Append Only File Redis 执行的每次写命令记录到单独的日志文件中(有点像 MySQL 的 binlog),当 Redis 重启时再次执行 AOF 文件中的命令来恢复数据。与 RDB 相比,AOF 的实时性更好,因此已成为主流的持久化方案。
开启 aof
需要在配置文件中配置:appendonly yes。
执行流程
命令追加(append):将 Redis 的写命令追加到缓冲区 aof_buf。
文件写入(write)和文件同步(sync):根据不同的同步策略将 aof_buf 中的内容同步到硬盘。
文件重写(rewrite):定期重写 AOF 文件,达到压缩的目的。
常用配置
方案选择与常见问题
复制
数据冗余
故障恢复
负载均衡
高可用基石
复制过程
连接建立阶段
数据同步阶段
全量复制
部分复制
复制偏移量
复制积压缓冲区
服务器运行 ID(runid)
命令传播阶段
哨兵
集群
作用主要有2个
数据分区
高可用
支持主从复制 及 主节点的故障转移
集群搭建
启动节点:将节点以集群模式启动,此时节点是独立的,并没有建立联系。<br>节点握手:让独立的节点连成一个网络。<br>分配槽:将 16384 个槽分配给主节点。<br>指定主从关系:为从节点指定主节点。
集群方案设计
高可用要求
数据量和访问量
节点数量限制
适度冗余
数据分区方案
哈希取余分区
一致性哈希分区
带虚拟节点的一致性哈希分区
节点通信机制
2个端口 1.普通端口 2.集群端口
Gossip 协议
消息类型
数据结构
集群命令的实现
cluster meet
cluster addslots
客户端访问集群
Smart 客户端
实践须知<br>
集群伸缩
ASK 错误
集群的限制及应对方法
key 批量操作受限
Hash Tag
数据库
集群模式下只支持一个,即 db0
事务/Lua 脚本
key必须在同一个节点 Hash Tag可以解决
Hash Tag
参数优化
cluster_node_timeout
cluster-require-full-coverage
应用场景
<b>计数器</b> 比如帖子的阅读次数 点赞次数
分布式全局唯一id(string)
消息队列(list)
左边进 右边出
新浪/Twitter用户消息列表(list)
实现点赞,签到,like等功能(set)
实现关注模型,可能认识的人(set)
电商商品筛选(set)
排行版(zset)
0 条评论
下一页