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