随笔分类 -  Redis专栏

学习redis的笔记
摘要:分布式寻址算法 hash 算法(大量缓存重建) 一致性 hash 算法(自动缓存迁移)+ 虚拟节点(自动负载均衡) redis cluster 的 hash slot 算法 一、hash 算法 来了一个请求,首先对key计算 hash 值,然后对节点数取模。然后打在不同的 master 节点上。 存 阅读全文
posted @ 2020-09-14 09:33 MrMirror 阅读(2265) 评论(0) 推荐(1)
摘要:一、redis cluster 介绍 自动将数据进行分片,每个 master 上放一部分数据 提供内置的高可用支持,部分 master 不可用时,还是可以继续工作的 redis cluster架构下的每个redis都要开放两个端口号,比如一个是6379,另一个就是加1w的端口号16379。 6379 阅读全文
posted @ 2020-09-07 10:27 MrMirror 阅读(1107) 评论(2) 推荐(3)
摘要:一、两种数据丢失的情况 1. 异步复制导致的数据丢失 因为master->slave的复制是异步的,所以可能有部分数据还没复制到slave,master就宕机了,此时这些部分数据就丢失了 2. 脑裂导致的数据丢失 脑裂是什么 某个master所在机器突然脱离了正常的网络,跟其他slave机器不能连接 阅读全文
posted @ 2020-09-03 07:52 MrMirror 阅读(1015) 评论(2) 推荐(0)
摘要:一、选举的授权 每次一个哨兵要做主备切换,首先需要quorum数量的哨兵认为odown,然后选举出一个哨兵来做切换,这个哨兵还得得到majority哨兵的授权,才能正式执行切换 如果quorum < majority,比如5个哨兵,majority就是3,quorum设置为2,那么就3个哨兵授权就可 阅读全文
posted @ 2020-09-01 14:49 MrMirror 阅读(1272) 评论(0) 推荐(0)
摘要:一、哨兵(sentinal)的介绍 哨兵是redis集群架构中非常重要的一个组件,主要功能如下: 集群监控,负责监控redis master和slave进程是否正常工作 消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员 故障转移,如果master node挂掉了,会自 阅读全文
posted @ 2020-08-31 22:52 MrMirror 阅读(577) 评论(0) 推荐(4)
摘要:一、redis 的线程模型 redis 内部使用文件事件处理器 file event handler,它是单线程的,所以redis才叫做单线程模型。它采用IO多路复用机制同时监听多个 socket,将产生事件的 socket 压入内存队列中,事件分派器根据 socket 上的事件类型来选择对应的事件 阅读全文
posted @ 2020-08-30 23:35 MrMirror 阅读(10151) 评论(0) 推荐(5)
摘要:一、replication的完整流程 slave配置master ip和port # slaveof <masterip> <masterport> slaveof 127.0.0.1 6379 slave node内部有个定时任务,每秒检查是否有新的master node要连接和复制,如果发现,就 阅读全文
posted @ 2020-08-30 11:10 MrMirror 阅读(435) 评论(0) 推荐(1)
摘要:一、redis replication核心原理 (1) 当启动一个 slave node 的时候,它会发送一个 PSYNC 命令给 master node。 (2) 如果这是 slave node 初次连接到 master node,那么会触发一次 full resynchronization 全量 阅读全文
posted @ 2020-08-29 22:03 MrMirror 阅读(637) 评论(1) 推荐(0)
摘要:一、企业级的持久化的配置策略 (1)每隔1分钟去检查如果超过10000个可以变更,则生成一个快照。RDB最多丢1分钟的数据。 save 60 10000 (2)AOF一定要打开,fsync,everysec #就是当前AOF大小膨胀到超过上次100%,上次的两倍 auto-aof-rewrite-p 阅读全文
posted @ 2020-08-29 19:34 MrMirror 阅读(642) 评论(2) 推荐(5)
摘要:一、AOF持久化的配置 配置文件redis.conf,AOF持久化默认是关闭的,默认是打开RDB持久化 appendonly yes 二、工作流程: 打开AOF持久化机制之后,redis每次接收到一条写命令,就会写入日志文件中,当然是先写入os cache的,然后每隔一定时间再fsync一下 可以配 阅读全文
posted @ 2020-08-29 10:02 MrMirror 阅读(315) 评论(0) 推荐(0)
摘要:一、如何配置RDB持久化机制 配置文件redis.conf save 60 1000 表示每隔60s,检查如果有超过1000个key发生了变更,那么就生成一个新的dump.rdb文件,就是当前redis内存中完整的数据快照,这个操作也被称之为snapshotting,快照。 也可以手动执行save或 阅读全文
posted @ 2020-08-29 10:00 MrMirror 阅读(305) 评论(0) 推荐(0)
摘要:一、RDB和AOF两种持久化机制的介绍 RDB:对redis中的数据执行周期性的持久化,每隔一个时刻生成一个RDB文件,这个RDB文件包含这个时刻所有的数据。 AOF:记录每条写入命令,以append-only的模式写入一个日志文件中。redis重启后,可以通过回放AOF日志中的写入指令来重新构建整 阅读全文
posted @ 2020-08-28 11:10 MrMirror 阅读(413) 评论(0) 推荐(0)