分布式Redis系统的初始化实践(分布式redis初始化)

## 前言

随着云计算和应用服务的发展,分布式内存数据库已经开始更广泛的投入市场,满足应用服务的垂直扩容和水平扩容的要求。Redis作为最火的分布式内存数据库之一,其分布式方案得到广泛的应用。本文旨在介绍分布式Redis系统的编排实践,希望对对分布式及Redis感兴趣的同学有所帮助。

## 实践

在分布式的Redis项目中,我们使用`codis-ha`方案来实现高可用集群。Codis是一个完整的Redis解决方案,包含代理(Proxy), 会话(Session),存储(Storage)和管理(Admin)四个部分。

### 环境部署

通常,我们使用zookeeper+haproxy+redis,来实现一个可靠的分布式系统。在此,我们使用3主3从架构,作为我们环境搭建的示例。我们将zookeeper/haproxy/codis-ha 安装在所有需要部署的三台节点上,并依次分为三个master节点和三个slave节点。然后使用下列命令安装redis:

$ wget redis-3.2.9.tar.gz
$ tar zxvf redis-3.2.9.tar.gz
$ cd redis-3.2.9
$ make
$ make install

安装完成之后,将三个master节点上的redis配置文件/etc/redis.conf都设置为:

daemonize yes
masterauth ""
requirepass ""

并在slave节点上为每个redis配置文件添加:

masterauth ""
slaveof 6167

### Master节点设置

在master节点上,我们需要安装`codis-ha`, 使用`make`进行安装。安装完成后将`conf/servers-ha.json`配置文件设置下列信息:

{
"topology": {
"192.168.1.1": {
"passwd": "",
"desc": "master-1"
},
"192.168.1.2": {
"passwd": "",
"desc": "master-2"
},
"192.168.1.3": {
"passwd": "",
"desc": "master-3"
}
},
"proxy" : {
"host": "172.24.16.133",
"port": 8080
},
"ha": {
"watch": {
"servers": [
{
"host": "192.168.1.1",
"port": 6379,
"passwd": ""
},
{
"host": "192.168.1.2",
"port": 6379,
"passwd": ""
},
{
"host": "192.168.1.3",
"port": 6379,
"passwd": ""
}
],
"password": ""
}
}
}

### Proxy启动

然后,在主节点上启动`codis-ha`,`codis-proxy`和`redis`:

$ codis-ha 
$ codis-proxy --conf
$ redis-server --daemonize yes --masterauth

启动完成后,我们可以在浏览器中访问`172.24.16.133:8080`来检查是否已经配置成功。

## 结束语

在本文中,我们简单介绍了一下分布式Redis系统的编排实践,并结合一个示例讲解了如何搭建一个可靠的分布式系统。在实际情况中,由于各种不可抗力因素,可能会造成分布式系统出现各种报错,此时,需要我们运维人员在定期回溯和日志分析的基础上,进行及时的系统处理和监控,以保证现场的稳定运行。


数据运维技术 » 分布式Redis系统的初始化实践(分布式redis初始化)