文档 v1.5.1 版本已不再积极维护,你当前浏览的是一份归档快照。 最新文档请参阅 最新版本。
部署与监控Redis
Pigsty是一个PostgreSQL发行版,也是一个通用应用运行时。您可以用它管理、部署、监控其他应用与数据库,例如Redis。
与PostgreSQL类似,部署Redis同样需要两个步骤:
- 声明/定义Redis集群
- 执行Playbook创建Redis集群
定义Redis集群
Redis实体概念模型
Redis的实体概念模型与PostgreSQL几乎相同,同样包括 集群(Cluster) 与 实例(Instance) 的概念。注意这里的Cluster概念指的不是 Redis原生集群方案中的集群。
核心的区别在于,Redis通常采用单机多实例部署,一个物理/虚拟机节点上通常会部署多个 Redis实例,以充分利用多核CPU。因此,定义Redis实例的方式与PGSQL稍有不同。
在Pigsty管理的Redis中,节点完全隶属于集群,即目前尚不允许在一个节点上部署两个不同集群的Redis实例,但这并不影响您在在一个节点上部署多个独立Redis实例。
Redis身份参数
身份参数是定义Redis集群时必须提供的信息,包括:
| 名称 | 属性 | 说明 | 例子 |
|---|---|---|---|
redis_cluster |
必选,集群级别 | 集群名 | redis-test |
redis_node |
必选,节点级别 | 节点编号 | 1,2 |
redis_instances |
必选,节点级别 | 实例定义 | { 6001 : {} ,6002 : {}} |
redis_cluster标识了Redis集群的名称,在集群层面进行配置,作为集群资源的顶层命名空间。redis_node标识了节点在集群中的序号redis_instances是一个JSON对象,Key为实例端口号,Value为一个JSON对象,包含实例特殊的配置
Redis集群定义
下面给出了三个Redis集群的精简定义,包括:
- 一个1节点,3实例的Redis Sentinel集群
redis-sentinel - 一个2节点,12实例的的Redis Cluster集群
redis-cluster - 一个1节点,一主两从的Redis Standalone集群
redis-standalone
您需要在节点上为Redis实例分配唯一的端口号。
创建Redis集群
部署剧本
使用剧本redis.yml创建Redis实例/集群
其他注意事项
尽管这样做并不是推荐的行为,您可以将PostgreSQL与Redis进行混合部署,以充分利用机器资源。
redis.yml 剧本会在机器上同时部署Redis监控Exporter,包括redis_exporter与node_exporter(可选)
在此过程中,如果机器的node_exporter存在,将会被重新部署。
Prometheus默认会使用"多目标抓取"模式,使用节点上9121端口的Redis Exporter抓取该节点上所有的Redis实例。
查阅Redis监控
目前Pigsty提供了3个Redis监控面板,作为一个独立监控应用 REDIS的组成部分,分别为:
- Redis Overview:提供整个环境中Redis的全局概览
- Redis Cluster: 关注单个Redis业务集群的监控信息
- Redis Instance:关注单个Redis实例的详细监控信息
您可以使用自带的 redis-benchmark 测试
其他功能
Pigsty v1.5.1 支持 Redis 集群整体部署与监控;标签中的 redis.yml / redis-remove.yml 也可通过 -e redis_port=<port> 操作单个实例。
下线,扩容、缩容,单实例管理等功能将在后续版本中逐步提供。