悟世者
希望用技术改变世界的程序员,资深数据库内核架构师,长期在一线从事数据库核心模块开发。有希望咨询和交流的问题可以直接私信或者留言,看到后会及时回复。
展开
-
2022-04-15 redis使用raft协议做主从复制记录
摘要:搭建redis的raft协议复制的主从模式代码库地址:redisraft:https://github.com/RedisLabs/redisraftredis主支不稳定版:https://github.com/redis/redis本地测试脚本:redis-raft.tar.gz-Redis文档类资源-CSDN下载运行redisraft:目录结构:root@localhost:~/work/redis/redis-raft# tree.├原创 2022-04-15 17:56:37 · 1565 阅读 · 0 评论 -
2022-04-14 redis-operator业界方案分析
目录摘要:需求分析:功能需求:性能需求:数据安全性及高可用:业界redis-operator实践借鉴:一. spotahome/redis-operator二. operatorHub中开源的redis-operator三. AmadeusITGroup/Redis-Operator四. 同盾redis-operator摘要:调研业界redis-operator的做法, 借鉴优秀的设计, 指出不足, 列出改进点和开发计划, 实现后作为底座的sys数原创 2022-04-14 21:22:30 · 1605 阅读 · 0 评论 -
2022-04-13 spotahome-redis-operator部署测试并gdb调试
摘要:说明如何快速用spotahome-redis-operator部署哨兵加主从github地址:GitHub - spotahome/redis-operator: Redis Operator creates/configures/manages high availability redis with sentinel automatic failover atop Kubernetes.https://github.com/spotahome/redis-operator.原创 2022-04-13 17:51:49 · 1571 阅读 · 0 评论 -
2022-04-12 spotahome/redis-operator官方文档
摘要:https://github.com/spotahome/redis-operatorredis-operator module - github.com/spotahome/redis-operator - pkg.go.dev文档:redis-operatorRedis Operator creates/configures/manages redis-failovers atop Kubernetes.RequirementsRedis Operat...原创 2022-04-12 12:02:51 · 1122 阅读 · 0 评论 -
2022-04-11 redis-operator社区版star排名前九记录
目录摘要:社区版redis-operator:一.spotahome/redis-operator二.OT-CONTAINER-KIT/redis-operator三.ucloud/redis-cluster-operator四.kudobuilder/operators五.ucloud/redis-operator六.AmadeusITGroup/Redis-Operator七.amaizfinance/redis-operator八.tongdu...原创 2022-04-11 20:51:36 · 567 阅读 · 1 评论 -
2022-04-11 redis哨兵客户端文档
目录Sentinel client specRedis service discovery via SentinelStep 1: connecting to the first SentinelStep 2: ask for master addressStep 3: call the ROLE command in the target instanceHandling reconnectionsSentinel failover disconnectionConnect原创 2022-04-11 20:27:09 · 233 阅读 · 0 评论 -
2022-04-11 redis哨兵官方说明文档
目录摘要:High availability with Redis SentinelSentinel as a distributed systemSentinel quick startObtaining SentinelRunning SentinelFundamental things to know about Sentinel before deployingConfiguring SentinelOther Sentinel optionsExample原创 2022-04-11 18:29:51 · 756 阅读 · 0 评论 -
2022-04-11 redis企业版看门狗
目录摘要:Auto failover分析:一. 看门狗进程分为节点看门狗和集群看门狗两个不同的进程二. 节点看门狗设计三. 集群看门狗设计摘要:记录对redis企业版的高可用技术中看门狗的分析Auto failoverA Redis Enterprise cluster uses two watchdog processes to detect failures:Node watchdog:Monitors all processes running.原创 2022-04-11 14:35:46 · 461 阅读 · 0 评论 -
2022-04-08 redis-operator方案ppt化
目录摘要:PPT:redis企业版operator文档:What is an operator?What does an operator do?摘要:记录redis-operator方案的ppt化PPT:redis企业版operator文档:The Redis Enterprise operator is the fastest, most efficient wa...原创 2022-04-08 20:59:06 · 914 阅读 · 0 评论 -
2022-04-06 使用etcd辅助redis做failover反思
目录摘要:使用zk辅助failover:使用etcd辅助failover:etcd官方建议的分布式锁:mutexsession摘要:此前曾写过使用zookeeper来辅助redis做failover, 本次使用etcd来做redis的failover. 对比不同的一致性数据库的使用.使用zk辅助failover:核心思想是使用zk的临时目录master写临时目录, slave监控临时目录. master进程与zk断开连接, 临时目录自动销毁. slav原创 2022-04-06 22:51:18 · 2435 阅读 · 0 评论 -
2022-03-29 k8s上部署redis企业版相关文档
目录Redis Enterprise Software on KubernetesRedis Enterprise Software on Kubernetes architectureDeploymentRedis Enterprise clusters (REC)Redis Enterprise databases (REDB)SecurityRedis Enterprise Software logs on KubernetesManage memory resour.原创 2022-03-29 16:22:48 · 847 阅读 · 0 评论 -
2022-03-29 redis-operator-需求分析
目录摘要:目标:需求分析思维导图:相关调研:中控业务方建议:摘要:记录redis-oprator的相关需求, 对其做分析目标:1)参考业界优势的redis Operator技术,总结对比选型,做到兼听则明。2)以做一流的redis服务为目标,你那些测试例弄的挺好,是这个思路。3)要看细节,要设计好需求分析思维导图:RedisOperator需求分析 1. 技术选型要求 1. 必须用operator 1. k8...原创 2022-03-29 10:00:30 · 1588 阅读 · 0 评论 -
2022-03-28 redis企业版对比redis社区版的cluster分析
摘要:redis社区版提供了cluster分布式解决方案, 本文将社区版的cluster方案与redis企业版的集群方案进行对比/官方文档:enterprise:Redis Enterprise Cluster Architecture | Rediscluster:Scaling with Redis Cluster | Redis整体架构:redis-cluster:说明:cluster模式中的任意节点, 都保持本集群所有的元信...原创 2022-03-28 16:50:42 · 2062 阅读 · 0 评论 -
2022-03-25 redis主从高可用设计-分析哨兵及用etcd替换哨兵
目录摘要:哨兵+主从的特性:不足:哨兵+主从的优化版:分析:一. 检测到redis主服务挂掉, 并完成从服务的升主1.1 检测到redis主服务挂掉:1.2 完成从服务的升主二. 存储redis主从服务的元信息结论:摘要:由于哨兵目的是监控主从高可用自动处理failover, 是以哨兵与cluster集群并非在同一个抽象层次.所以本文单独论述, 在非集群模式, 仅高可用情况下的设计.部署架构为redis的主从模式, 不可横向扩展....原创 2022-03-25 17:53:17 · 426 阅读 · 0 评论 -
2022-03-25 redis哨兵+主从的组建及failover流程
目录摘要:哨兵+主从的组建:哨兵控制failover:哨兵源码:摘要:记录redis哨兵+主从的组建及failover流程, 由于是动态结构, 所以主要是时序图.哨兵+主从的组建:哨兵控制failover:哨兵源码:/* Redis Sentinel implementation * * Copyright (c) 2009-2012, Salvatore Sanfilippo <antirez at gmail dot原创 2022-03-25 16:45:06 · 395 阅读 · 0 评论 -
2022-03-25 redis哨兵监控主从模式-主从的元信息
目录摘要:redis.conf中被sentinel改变的部分:master服务slave服务sentinel中的配置:可以看出有以下几部分:摘要:使用哨兵监控主从, 主从之间的网络结构, 现在主从服务的epoch版本, 都被记录在了哨兵里, 并被持久化到哨兵的配置文件里. 主从服务, 仅在从服务的redis.conf记录了slaveof.本文具体说明元信息的分布.redis.conf中被sentinel改变的部分:master服务# Gener原创 2022-03-25 15:39:49 · 959 阅读 · 0 评论 -
2022-03-25 redis哨兵处理failover
摘要:记录redis哨兵模式做failover处理调用堆栈:#0 sentinelStartFailover (master=0x7fb5d8267000) at sentinel.c:4578#1 0x00000000004aa628 in sentinelStartFailoverIfNeeded (master=master@entry=0x7fb5d8267000) at sentinel.c:4627#2 0x00000000004abc41 in sentin..原创 2022-03-25 14:29:17 · 1637 阅读 · 0 评论 -
2022-03-25 redis组建哨兵及主从高可用的failover
摘要:本文记录如何组建哨兵模式监控主从高可用,需要注意哨兵起到了监控和发起failover的作用,redis的主从slaveof不会自发的failover,仅作为冗余节点起到高可用总用.部署架构:redis-server:两个redis-server服务, 一主, 一从 主和从服务的配置上都不直接配置slaveof, 而是服务启动后, 手动使用slaveof组建主从关系redis-sentinel:三个redis-sentinel节点 只有quorum达到2时, 才发起..原创 2022-03-25 11:17:48 · 1412 阅读 · 0 评论 -
2022-03-24 k8s-结合csi接口完成redis备库重建
摘要:redis的高可用, 使用local pv导致pod无法重新调度, 本文说明如何使pod可被再次调度, 从而完成备库重建csi相关:csi相关服务的节点图:csi相关创建pvc及挂载:备库重建的时序:aliyun的csi:controllerServer:CreateVolume// CreateVolume csi interfacefunc (cs *controllerServer) CreateVolume(ctx ..原创 2022-03-24 15:39:40 · 558 阅读 · 0 评论 -
2022-03-18 对于redis的operator的概要设计
摘要:此前云平台以上一任op组规划出的op服务, 作为代理k8s与上层业务交互的服务, 对上层业务开发起到了一系列的阻碍生产力的方面. 本文不详细展开.本文以redis数据库为具体例子, 提出以redis-operator来作为数据库实例与k8s交互间的作用层的设计. 目的有以下几个方面:减少数据库开发中仅起到接口转发的中间层, 减少开发者的工作量 以云原生的方式进行业务与k8s层的交互, 使业务可以根据自己的需求快速实现, 而不需要依赖其他服务阻塞开发流程, 加快业务迭代速度...原创 2022-03-18 10:42:19 · 1276 阅读 · 0 评论 -
2022-03-17 使用k8s的operator-hub中的redis-operator组建cluster集群-操作手册
目录摘要:redis-operator的代码仓库:使用redis-operator部署redis-cluster集群:一. 安装crd资源执行安装crd命令:执行结果:查看crd:二. 编译controller执行编译controller命令命令执行结果:三. 启动controller进程三. 查看redis-cluster集群是否已组建:查看pod查看redis的cluster集群信息:摘要:记录使用operator-hub中的redis原创 2022-03-17 14:41:31 · 1235 阅读 · 0 评论 -
2022-03-17 redis-operator-redis单点-redis配置记录
目录摘要:redis-operator使用的镜像:redis镜像:redis-export:redis镜像本地查看:拉取容器 docker pull quay.io/opstree/redis:v6.2.5运行容器 docker run进入容器:redis使用的配置的结论:redis的配置:摘要:redis-operator使用的了quay.io/opstree/redis:v6.2.5, 记录对于redis配置的处理redis-ope..原创 2022-03-17 12:23:36 · 1317 阅读 · 0 评论 -
2022-01-27 redis-cluster集群代理predixy分析
目录摘要:redis集群代理的选择依据:predixy说明:摘要:针对redis-cluster集群的前端代理, 说明选择该组件的理由其他的集群代理分析参考:NDB.Redis-相关技术选型记录redis集群代理的选择依据:稳定性经过业界其他公司验证, 成熟的开源组件 性能测试数据满足要求; TODO: 性能需求数据是? 支持相对更多的redis命令 批量key操作, 基本的mset/mget 其他的批量命令 轻量级, 便于集成到云平台, 并做功能定...原创 2022-01-27 14:46:42 · 1024 阅读 · 0 评论 -
2022-01-27 redis-cluster集群-脑裂问题分析
目录摘要:cluster集群故障检测和主从切换:redis-cluster脑裂问题的出现原因:脑裂解决策略:方案选择:摘要:分析redis-cluster集群模式, 脑裂问题的解决策略cluster集群故障检测和主从切换:NDB.Redis-数据安全-cluster集群redis-cluster脑裂问题的出现原因:设定集群中有cluster1, 包含一主一从, master1和slave1。 client与master1连接。此时有两个网络分区:c..原创 2022-01-27 14:43:25 · 3575 阅读 · 0 评论 -
2022-01-27 Redis-数据安全-持久化
摘要:以redis5.0.9版为分析依据, 分析redis的持久化分为rdb和aof,记录可能存在的问题。redis官方对持久化说明:Redis Persistence – RedisRedis persistence demystifiedaof文件问题说明:aof文件被截断: What should I do if my AOF gets truncated?It is possible that the server crashed ...原创 2022-01-27 14:40:11 · 637 阅读 · 0 评论 -
2022-01-27 redis最小分片数研究
摘要:为了超过阿里云,成为中国最强的分布式redis云数据库,对redis集群的最小分片数做探讨。分析缩小集群分片数后会引发的问题。cluster集群-仅修改创建cluster时的master数量限制:代码中写死了最小需要3个master节点, 直接修改源码以支持更小的分片 int node_len = cluster_manager.nodes->len; int replicas = config.cluster_manager_command...原创 2022-01-27 14:29:14 · 547 阅读 · 0 评论 -
2022-01-27 redis集群技术调研
目录摘要:redis集群方案选型:redis集群前端代理proxy技术选型:redis集群的扩容/缩容:redis cluster集群的节点高可用redis节点主从复制:鉴权监控和:摘要:记录对于redis相关的技术选型, 并记录其特性redis集群方案选型:方案一: 主从部署 + sentinel监控原理:优点:完成了主从节点的高可用,自动完成主节点的failover不足:redis的主节点互相独立,不构成集..原创 2022-01-27 14:27:56 · 699 阅读 · 0 评论 -
2021-12-21 [redis] 生成rdb对磁盘io的压力测试
目录摘要:测试方式:redis内存数据准备:数据填充脚本:测试脚本:io测试脚本:磁盘测试脚本:一. 磁盘写入测试:二. 单个redis生成快照测试磁盘io:三.两个redis进程分别同时生成rdb快照时的磁盘io测试结果:一. 磁盘基准写入数据:二. 单个redis进程生成rdb快照:三.两个redis进程分别同时生成rdb快照时的磁盘io结论:摘要:测试redis在生成rdb快照时,性能瓶颈测试方式:使用dd测试磁盘...原创 2021-12-21 13:51:19 · 799 阅读 · 0 评论 -
2021-12-20 [redis] redis配置中的save引起rdb快照生成的规则
摘要:分析redis配置中的save, 具体是以何种规则来触发生成rdb.redis配置中的注释:## Save the DB on disk:## save <seconds> <changes>## Will save the DB if both the given number of seconds and the given# number of write operations against the DB occurre...原创 2021-12-20 17:32:04 · 818 阅读 · 0 评论 -
2021-12-17 [redis] aof写入测试
摘要:测试redis的aof写入速度, 仅测试追加写, 关闭aof重写功能.向redis填充数据:环境准备:使用python实现, 需要安装对应的模块redis模块用于测试单点写入redis-py-cluster模块用于测试cluster集群写入python3 -m pip install redispython3 -m pip install redis-py-cluster填充数据脚本:# -*- coding:utf-8 -*-import ..原创 2021-12-17 12:22:35 · 604 阅读 · 0 评论 -
2021-12-17 [redis] 数据同步-网络流量统计
目录摘要:硬件规格:redis数据同步:网络流量监控:摘要:统计redis数据同步时的网络性能,硬件规格:本机虚拟机进行cpu: 1核2803.202MHz 网卡: 虚拟网卡 硬盘: 读取: 写入: redis数据同步:cluster集群 -> 另一台机器上的redis单点redis单点只开启aofport 6379daemonize nopidfile redis.pidprotected-mode noc...原创 2021-12-17 11:54:31 · 604 阅读 · 0 评论 -
2021-12-15 [redis] cluster集群数据导出及备份策略
摘要:redis的cluster集群数据按槽位存储, 本文记录如何将全部数据导出.使用第三方工具; redis-dump安装redis-dump:yum install ruby rubygems ruby-devel -ygem install redis-dump原创 2021-12-15 18:40:12 · 2348 阅读 · 0 评论 -
2021-12-15 [redis] 使用Prometheus收集性能数据
摘要:说明redis监控的处理监控策略:使用Prometheus进行数据收集. 为简化收集接口, 直接使用export.export:redis: https://github.com/oliver006/redis_exporter/tree/renovate/redis-6.xpredixy:https://github.com/joyieldInc/predixy_exporter所要做的操作:一. 引入predixy和redis的export...原创 2021-12-15 16:53:18 · 3015 阅读 · 0 评论 -
2021-10-14 redis-cluster处理failover
摘要:redis的cluster集群, slave在完成failover时相对复杂, 本文记录下failover的细节脑图:代码:/* This function is called if we are a slave node and our master serving * a non-zero amount of hash slots is in FAIL state. * * The gaol of this function is: * 1) To che.原创 2021-10-14 11:34:36 · 570 阅读 · 0 评论 -
2021-10-14 redis-cluster的cluster心跳中的处理
摘要:redis的cluster集群在心跳中处理核心事情, 本文记录下主要做的处理.脑图:代码:/* ----------------------------------------------------------------------------- * CLUSTER cron job * -------------------------------------------------------------------------- *//.原创 2021-10-14 11:19:12 · 446 阅读 · 0 评论 -
2021-09-26 redis-cluster心跳
摘要:记录redis cluster在心跳中的处理原创 2021-09-26 17:07:47 · 232 阅读 · 0 评论 -
2021-08-20 redis-cluster集群创建过程
目录摘要:创建过程:摘要:记录redis-cluster集群创建过程创建过程:使用redis-cli进行自动创建, 时序图为:原创 2021-08-20 11:18:17 · 141 阅读 · 0 评论 -
2021-07-05-redis-cluser集群最小分片数研究
摘要:为了超过阿里云,成为中国最强的分布式redis云数据库,对redis集群的最小分片数做探讨。分析缩小集群分片数后会引发的问题。cluster集群-仅修改创建cluster时的master数量限制:代码中写死了最小需要3个master节点, 直接修改源码以支持更小的分片 int node_len = cluster_manager.nodes->len; int replicas = config.cluster_manager_command...原创 2021-07-05 17:55:37 · 429 阅读 · 0 评论 -
2021-02-15 redis主从关系手动设置
摘要:redis的主从模块在cluster模块前已存在,并且在非cluster模式中可以独立设置主从关系。本文在单独的redis模式中,手动构建主从关系。目的在于为下一步剔除cluster中的管理模块做铺垫。配置:在cluster模式中,不能手动指定slaveof主从关系, 所以禁用clustercluster-enabled no如果没有slaveof配置, 则为master,否则为slave并构建主从关系。在7001端口的节点设置:replicaof 127.原创 2021-07-05 16:16:24 · 659 阅读 · 0 评论 -
2021-06-30 记录一次redis-cluster测试的反馈
摘要:20210630-15:57分,测试组上报没有按测试预期完成failover, 本文记录问题分析及解决过程。问题描述:集群描述:cluster集群: 4主4从测试组执行操作:集群正确创建 172.16.0.12为master, 以下简称0.12 172.16.0.7是0.12节点的slave, 以下简称0.4 测试人员杀掉0.12的pod, 使0.12成为判定下线状态 测试人员启动0.12的pod,预期 0.7节点完成failove...原创 2021-06-30 16:52:11 · 396 阅读 · 0 评论