Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别, 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务。
Codis 由四部分组成:
Codis Proxy (codis-proxy)
Codis Manager (codis-config)
Codis Redis (codis-server)
ZooKeeper
一,安装zookeeper
安装java环境
ZooKeeper 要求 JAVA 的环境才能运行,并且需要 JAVA6 以上的版本,可以
从官网上下载,并对 JAVA 环境变量进行设置。
yum -y install java-1.7.0-openjdk-devel
jave -version 显示版本
安装zookeeper
wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 /usr/local/zookeeper
mkdir -p /data/zookeeper/{data,logs}
cp zoo_sample.cfg zoo.cfg配置zoo.cfg
vim /usr/local/zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/data/zookeeper/data
#dataLogDir=/data/zookeeper/logs
clientPort=2181
server.1=zookeeper-1:2888:3888
设置myid
在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字
[root@zookeeper-1 ~]# echo 1 > /data/zookeeper/data/myid
启动zookeeper
启动顺序zookeeper-1>zookeeper-2>zookeeper-3
[root@zookeeper-1 zookeeper]# zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@zookeeper-1 zookeeper]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
可以看到最先开始启动的是leader,其他两个是follower
设置开机启动
vim /etc/rc.local
/usr/local/zookeeper/bin/zkServer.sh start
设置环境变量
vim /etc/profile
export ZOOKEEPERPATH=/usr/local/zookeeper
export GOROOT=/usr/local/go
export CODISPATH=/usr/local/codis
export PATH=$PATH:$GOROOT/bin:$ZOOKEEPERPATH/bin:$CODISPATH/bin
source /etc/profile
二,安装codis集群
1,安装go
设置环境变量
vim /etc/profile
export GOROOT=/usr/local/go
export CODISPATH=/usr/local/codis
export PATH=$PATH:$GOROOT/bin:$CODISPATH/bin
source /etc/profile
下载安装go
cd /usr/local/
wget http://golangtc.com/static/go/go1.3.3.linux-amd64.tar.gz
如果下载不了,可以尝试手动下载tar包
tar -zxvf go1.3.3.linux-amd64.tar.gz go version
go version go1.3.3 linux/amd64
2,安装依赖环境
yum groupinstall "Development Tools"
3,安装codis
yum install -y git
安装前首先要设置go_path的路径,我默认给它设置到/usr/local/go_path,然后在下载前我们需要在go_path下提前建立一个bin的目录。
go get -u -d github.com/CodisLabs/codis
克隆一个窗口,监控codis的下载进度: tcpdump -i eth0 host github.com的ip地址
切换到$GOPATH/src/github.com/CodisLabs/codis
目录执行make
命令编译代码,并执行make gotest
来跑测试
执行全部指令后,会在 bin 文件夹内生成 codis-config、codis-proxy、codis-server三个可执行文件。另外, bin/assets 文件夹是 codis-config 的 dashboard http 服务需要的前端资源, 需要和 codis-config 放置在同一文件夹下
安装完成后 redis的配置目录在:
/usr/local/go_path/src/github.com/CodisLabs/codis/extern/下
redis的配置 信息见上一博客的redis配置
按需求配置coids中config.ini 的配置文件信息
在添加时加上-c参数 制定config.ini配置文件地址 codis-config -c ../config.ini server add 1 172.16.12.26:6380 salver dashboard_addr=0.0.0.0:18087 zk=172.16.12.26:2181
启动dashboard
codis-config dashboard &
初始化呢solt 只能第一次安装使用
codis-config slot init
启动codis
codis-server /etc/redis/redis_6380.conf
codis-server /etc/redis/redis_6381.conf
添加 Redis Server Group
每一个 Server Group 作为一个 Redis 服务器组存在, 只允许有一个 master, 可以有多个 slave, group id 仅支持大于等于1的整数
$ bin/codis-config server -h usage: codis-config server list codis-config server add <group_id> <redis_addr> <role> codis-config server remove <group_id> <redis_addr> codis-config server promote <group_id> <redis_addr> codis-config server add-group <group_id> codis-config server remove-group <group_id> 添加组 一主一从 codis-config server add 1 localhost:6380 master codis-config server add 1 localhost:6381 salver 在浏览器中输入: 进入界面验证
本文转自岁月丶倾城博客51CTO博客,原文链接http://blog.51cto.com/alca0126/1757904如需转载请自行联系原作者
laihuadongcto