纲要
环境版本
目录结构
安装步骤
启动
一、环境版本
- 操作系统:CentOS 6.5 x86-64
- java 7
- go 语言版本 1.5.2
- zookeeper 3.4.6
- codis 2.0.11
文件下载地址: http://pan.baidu.com/s/1sjVNWEp
二、目录结构
/data
-----/zookeeper
-----/go
---------/src/github/wandoulabs/codis
-----/codis(
软连接,指向 go/src/github/wandoulabs/codis
)
-----/redis (redis conf 存放目录)
三、安装步骤
- java 安装
查看是否有其他版本的JDK,CentOS 6.5 默认会安装 OpenJDKrpm -qa|grep jdkrpm -e --nodeps <包名> 来删除原有JDK
安装Oralce JDKrpm -ivh jdk-7u71-linux-x64.rpm
检验是否安装成功java -version
- zookeeper 安装
解压 zookeeper-3.4.6.tar 到 /data/zookeeper 目录下
将 /data/zookeeper/conf/zoo_simple.cfg 更名为 zoo.cfg(正式环境需要修改 dataDir 参数)
启动 zookeepersh /data/zookeeper/bin/zkServer.sh start
- go 安装
解压 go1.5.2.linux-amd64.tar 到 /data 目录修改环境变量vi /etc/profile
在最后加入:export GOROOT=/data/goexport PATH=$GOROOT/bin:$PATH
刷新环境变量source /etc/profile
检验是否安装成功go version
- codis安装
解压 codis-2.0.11.tar.gz 到 /data/src/github.com/wandoulabs/codis 目录执行命令:cd /data/src/github.com/wandoulabs/codismakemake gotest
给codis目录创建软连接,方便执行命令ln -s /data/src/gibhub.com/wandoulabs/codis /data/codis
编译成功后,/data/codis/bin 目录会出现 codis-proxy, codis-server, codis-config
codis 概要介绍:codis-config,启动dashboard控制,初始化slot,配置server groupcodis-proxy ,代理redis-clientcodis-server,和原生redis server 一样,此版本 codis 维护的是 redis2.8.1源代码
官方操作介绍:
- 启动顺序
zookeeper(见:安装步骤2,zookeeper安装 )
修改codis config.ini(设置 zookepper 地址)codis-config dashboard 控制台(所有的codis命令都经过dashboard)codis-config slot 初始化codis-config group 设置codis servercodis-proxy (多个proxy)
- 修改codis config.ini
修改 zk 属性,ip 为zookeeper安装机器ip,port 默认 2181修改dashboard_addr,为当前机器地址,需要指定具体 ip( 注意,ip 都使用明确的ip地址,不要使用 0.0.0.0 )
- 启动codis dashboard
cd /data/codisbin/codis-config dashboard
检查是否启动成功: 可以打开 codis 控制台( 注意:检查linux 防火墙 )
- codis slot 初始化
cd /data/codisbin/codis-config slot init
打开控制台 http://ip:18087/slots 可以查看 slot 状态,目前都是 offline,需要设置server group来online slot
- codis group 设置
每一个 Server Group 作为一个 Redis 服务器组存在, 只允许有一个 master, 可以有多个 slave, group id 仅支持大于等于1的整数(官方文档)
这里添加两组bin/codis-config server add 1 localhost:6379 masterbin/codis-config server add 1 localhost:6380 slave
bin/codis-config server add 2 localhost:6479 masterbin/codis-config server add 2 localhost:6480 slave
localhost:6379,6380.. 对应的就是redis server 的部署地址 。设置 server group 服务的 slot 范围
Codis 采用 Pre-sharding 的技术来实现数据的分片, 默认分成 1024 个 slots (0-1023), 对于每个key来说, 通过以下公式确定所属的 Slot Id : SlotId = crc32(key) % 1024 每一个 slot 都会有一个且必须有一个特定的 server group id 来表示这个 slot 的数据由哪个 server group 来提供.(官方文档)
server 1: 0 ~ 511
server 2: 512 ~ 1023
bin/codis-config slot range-set 0 511 1 onlinebin/codis-config slot range-set 512 1023 2 online
- codis server 启动
之前所过了,codis 维护这redis 2.8.1的代码, codis-server 启动和redis-server 启动方式一样
复制 /data/go/src/github.com/wandoulabs/codis/extern/redis-2.8.21/redis.conf,到/data/redis/redis.conf
在 /data/redis 下根据redis.conf 创建 6379.conf, 6380.conf, 6479.conf, 6480.conf分别修改 文件下的 port 端口
启动codis-server
bin/codis-server /data/redis/6379.confbin/codis-server /data/redis/6380.conf
bin/codis-server /data/redis/6479.conf
bin/codis-server /data/redis/6480.conf
打开控制台看起来是这样:
- codis proxy 启动
如果说 codis dashboard 是浏览器,那么codis proxy 就是浏览器上面的标签页(比喻可能不恰当)
bin/codis-proxy -c config.ini -L ./log/proxy.log --cpu=8 --addr=ip:19000 --http-addr=ip:19001( 注意,ip 都使用明确的ip地址,不要使用 0.0.0.0 )
刚启动的 codis-proxy 默认是处于 offline状态的, 然后设置 proxy 为 online 状态, 只有处于 online 状态的 proxy 才会对外提供服务
bin/codis-config -c config.ini proxy online <proxy_name> <---- proxy的id, 如 proxy_1
打开控制台看起来是这样: