codis官网:https://github.com/wandoulabs/codis/blob/master/doc/tutorial_zh.md
===== 安装 =====
* codis依赖go环境,安装见[[golang]]
* 开始安装
go get -u -d github.com/wandoulabs/codis #看到如下输出,完成安装
# imports github.com/wandoulabs/codis
# imports github.com/wandoulabs/codis: no buildable Go source files in /usr/install/go/gopath/src/github.com/wandoulabs/codis
cd $GOPATH/src/github.com/wandoulabs/codis/
git reset --hard 2.0.8 # 这个版本之后就没有没有bootstrap.sh这个文件了
sh bootstrap.sh
执行全部指令后,会在 bin 文件夹内生成 codis-config、codis-proxy、codis-server三个可执行文件。另外, bin/assets 文件夹是 codis-config 的 dashboard http 服务需要的前端资源, 需要和 codis-config 放置在同一文件夹下
codis-config 和 codis-proxy 在不加 -c 参数的时候, 默认会读取当前目录下的 config.ini 文件
* 修改config.ini,确保ip和端口正确
zk=192.168.0.123:2181
dashboard_addr=192.168.0.123:18087
=== 启动 dashboard ===
* 执行 bin/codis-config dashboard, 该命令会启动 dashboard
=== 初始化 slots ===
* 执行 bin/codis-config slot init,该命令会在zookeeper上创建slot相关信息
=== 启动 Codis Redis ===
Codis-server是在redis-server的基础上做了一些修改(加入了 slot 的支持和原子的数据迁移指令)
* bin/codis-server redis.conf (和官方的Redis Server参数一样)
建议修改redis.conf中的daemonize yes,设置成后台启动
=== 添加 Redis Server Group ===
每一个 Server Group 作为一个 Redis 服务器组存在, 只允许有一个 master, 可以有多个 slave, group id 仅支持大于等于1的整数
* 有4个codis-server
* 192.168.1.2:6479
* 192.168.1.2:6480
* 192.168.1.3:6479
* 192.168.1.4:6480
创建group并添加codis-server
* 添加一个group,group的id为1。并加入2个codis-server,一个做master、一个做slave
* bin/codis-config server add 1 192.168.1.2:6479 master
* bin/codis-config server add 1 192.168.1.3:6479 slave
* 添加一个group,group的id为2。并加入2个codis-server,一个做master、一个做slave
* bin/codis-config server add 2 192.168.1.2:6480 master
* bin/codis-config server add 2 192.168.1.3:6480 slave
=== 设置 server group 服务的 slot 范围 ===
设置编号为[0, 511]的 slot 由 server group 1 提供服务, 编号 [512, 1023] 的 slot 由 server group 2 提供服务
* bin/codis-config slot range-set 0 511 1 online
* bin/codis-config slot range-set 512 1023 2 online
=== 启动 codis-proxy ===
* bin/codis-proxy -c config.ini -L ./log/proxy.log --cpu=8 --addr=0.0.0.0:19000 --http-addr=0.0.0.0:11000
访问http://localhost:18087/admin , 现在可以在浏览器里面完成各种操作了。
----
codis-proxy启动之后,我们只需要向codis-proxy发送请求就好了。
* 连接到代理 : redis-cli -h 127.0.0.1 -p 19000
* 然后像操作单个redis一样操作整个codis集群吧
{{:pasted:20151130-124306.png}}
个人认为codis-proxy本身就是负载均衡(他只是转发请求),主要保证codis-proxy之间高可用就可以了