2023-12-14 TCE之Redis初介绍

第一部分 Redis功能及架构原理

一、Redis产品介绍

1、什么是Redis

云数据库Redis(TencentDB for Redis,CRedis)是腾讯云基于多年自身缓存业务技术沉淀和Redis类业务运营的需求,自研的一款高可用、高可靠的Redis服务平台。
在使用上,Redis兼容Redis协议,支持字符串、链表、集合、有序集合、哈希表等多种数据类型。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。

二、Redis功能设计

1、节点通信

(1)Redis-Cluster使用Gossip协议进行信息交换。
①Gossip消息类型:

  • meet:用于通知新节点加入;
  • ping:检测节点是否在线和交换彼此状态信息;
  • pong:响应ping、meet消息时正常通信;
  • fail:判定节点下线时向集群内广播一个fail消息。
    ②去中心化:
  • 各节点都记录集群状态信息,通过特定规则挑选通信节点,实现最终一致性。

2、主从同步

(1)完整重同步:在主从的初次复制时,PSYNC命令表示完整重同步,其作用和SYNC命令作用相同,执行流程基本一致,都是通过生成完整的RDB文件发送到从服务器,然后发送复制缓冲区中的写命令来完成一次同步。
(2)部分重同步:主要作用于断线重连的情况,从服务器断线后重连到主服务器时,如果满足部分重同步的条件,那么主服务器只会发送从服务器在断线这段时间内的增量写命令,而不是进行一次完整重同步,从服务器也只需要接收增量的部分命令,执行之后就可以完成数据库状态的更新。

Redis主从同步原理流程图

3、故障转移

(1)故障检测:

  • 检测:各节点A发送ping消息,规定时间未返回pong消息的节点B视为疑似下线pfail;
  • 广播:节点A通告其他节点,B节点状态标记为pfail;
  • 判定:超过半数节点认为节点B为pfail,则B节点标记为fail,继续广播所有节点。


    Redis故障检测示例图

    (2)节点选举:

  • 拉票:从节点发现主节点fail,将在集群内发起升主节点请求;
  • 投票:负责处理slot的主节点投票,票数过半数的从节点升主。
    (3)故障转移:
  • 通告:向集群中广播一条pong消息通告升主;
  • 接管:新的主节点轮询并接管所有slot处理。
    【Tips】
    ①slot(插槽)是用于实现Redis中集群分片(Cluster Sharding)的一种机制。Redis集群是由多个节点组成的分布式系统,每个节点可以处理一部分数据,slot用来划分数据的单位,每个slot可以存储一个键值对。

4、读写分离

  • 副本数(slave数)大于或等于1,可开启自动读写分离;
  • 通过Proxy层实现自动读写分离;
  • 开启读写分离Proxy将按照主节点只写,从节点平均分配读请求的方式来提供访问。


    Redis读写分离结构图

第二部分 Redis架构设计与部署

一、Redis架构

Redis架构图

1、支撑服务

支撑服务是部署在TCE的支撑平台,大部分服务以容器形式运行,部分数据库、中间件等服务以物理机形式运行。
支撑服务整体是Region级服务,因此每个Region是独立部署,不存在跨Region部署的组件。
提供Redis控制台需要的后端接口以及CAPI3.0接口,其功能包含Redis的业务逻辑控制,并且对接外部依赖服务,例如计费、监控、网络等服务;同时提供租户端控制实例各种变更操作,例如创建、扩容、销毁等实例管理控制操作。

  • Web:租户端控制台,提供控制台访问服务(Global级服务);
  • Shark:租户端后台,与云平台集成,提供租户创建、管理实例的功能,通常查看Shark日志;
  • CAPI:云API平台,提供云API服务,目前有2.0和3.0两个版本;
  • DBOSS:租户端数据库运营支持系统;
  • BARAD:云监控平台。

2、管控服务

管控服务是弹性缓存数据库服务的总称。管控服务部分服务部署在Underly CVM虚拟机,管控服务整体是Region级服务
负责Redis实例的生命周期管理,提供运营运维端对Redis进行创建、CRedis管理控制删除扩缩容、备份、还原等功能。

  • OPWEB:运营端控制台,提供系统及实例管理功能;
  • OSS:CRedis运营支撑系统,CRedis操作接口,提供HTTP的操作接口;
  • Monitor:CRedis监控采集模块,定期采集实例运行指标数据;
  • Control Center(CC):CRedis管理调度模块,CRedis实例生命周期管理,负责主备切换/实例管理任务调度/资源管理等。

3、生产服务

生成服务是弹性缓存数据库CRedis生产节点的总称。生产服务是最终对外售卖的节点,CRedis生产节点也称为CRedis缓存数据库节点(也称为Cache节点)。

  • Proxy:代理接入服务,实现请求路由功能,用于分发用户数据请求;
  • edis:CRedis生产节点也称为Cache节点,提供CRedis实例生产服务,最终售卖节点;
  • CCAgent(Control Center Agent):
    Control Center的Agent节点,与Control Center通信,协同CC完成CRedis实例的生命周期管理、监控等。

二、Redis进程

1、管控节点

(1)standby_cc
进程检查方式:

ps -ef |gerp qds_center

监听端口:6000
(2)cc_monitor
进程检查方式:

ps -ef |gerp cc_monitor

(3)mul_server
进程检查方式:

ps -ef |gerp mul_server

监听端口:55100

2、cache节点

(1)cc_agent
进程检查方式:

ps -ef |gerp qds_center

监听端口:5000
(2)cc_monitor_agent
进程检查方式:

ps -ef |gerp monitor_center

监听端口:9881,9887
(3)mul_server_agent
进程检查方式:

ps -ef |gerp mul_monitor_center

(4)redis-server
进程检查方式:

ps -ef |gerp redis-server |gerp { app_id}
  • 对于标准版实例,所有cache上的redis-server进程数之和=3+副本数,如:1副本的标准版实例,则对应的redis-server进程数=4。
  • 对于集群版实例,所有cache上的redis-server进程数之和=分片数*(1+副本数)。

3、proxy节点

(1)cc_agent
进程检查方式:

ps -ef |gerp qds_center

监听端口:5000
(2)cc_monitor_agent
进程检查方式:

ps -ef |gerp monitor_center

监听端口:9881,9887
(3)mul_server_agent
进程检查方式:

ps -ef |gerp mul_monitor_center

(4)interface
进程检查方式:

ps -ef |gerp interface |gerp { app_id}
  • 对于标准版实例,所有proxy上的interface进程数正常情况下固定为3个。
  • 对于集群版实例,所有proxy上的interface进程数正常情况下为1.5*分片数 并向下取整。

第三部分 Redis使用

1、Redis创建实例时,支持开源格式类型的链接方式:

redis-cli -h IP地址 -p 端口 -a 密码

2、Redis提供全方位的监控数据和自定义告警功能,监控指标包括负载监控、访问统计和网络流量等。
3、Redis巡检
登录 newcc_<idc_id>查看相关数据
(1)查看机器状态

select * from interface_machine_t;
select * from redis_machine_t;
#state 0 表示增加的节点失败的节点;1 表示正常使用中的节点;2 表示删除但未删除成功的节点

(2)查看进程状态是否正常

select * from interface_proc_t;
select * from redis_procs_t;
#state 0 表示增加的节点失败的节点;1 表示正常使用中的节点;2 表示删除但未删除成功的节点

(3)检查CC流程日志,查看/data/log/redis/cc-debug.log是否有异常

备注:以上内容主要来自腾讯云课堂相关课程内容。

上一篇:2023-12-13 TBase初介绍

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容