用户工具


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集群吧

个人认为codis-proxy本身就是负载均衡(他只是转发请求),主要保证codis-proxy之间高可用就可以了