git clone https://github.com/CodisLabs/codis.git

1:下载go环境 官网:https://golang.org/doc/install
wget https://storage.googleapis.com/golang/go1.6.2.linux-amd64.tar.gz

tar -C /usr/local -xzf go1.6.2.linux-amd64.tar.gz

cd /usr/local/go

cat >> /etc/profile <<EOF
export GOROOT=/usr/local/go
export GOPATH=/workspace/golang
export PATH=\$PATH:\$GOROOT/bin:\$GOPATH/bin
export CODIS_HOME=$GOPATH/src/github.com/CodisLabs/codis
export GO15VENDOREXPERIMENT=0
EOF

source /etc/profile

2:下载安装codis 官网:https://github.com/CodisLabs/codis/blob/master/doc/tutorial_zh.md  根据官网推荐采用这种方式,而不是git clone ...codis
go get -u -d github.com/CodisLabs/codis
go get github.com/tools/godep

cd $GOPATH/src/github.com/CodisLabs/codis
make
make gotest
#mkdir -p /usr/local/codis/{logs,conf,scripts}
#mkdir -p /data/codis_server/{logs,conf,data}

cd $GOPATH/src/github.com/CodisLabs/codis/bin

3:安装zookeeper
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz  -P /opt
tar -C /opt -xvf /opt/zookeeper-3.4.6.tar.gz  
cd /opt/zookeeper-3.4.6/conf
cp zoo_sample.cfg zoo.cfg
/opt/zookeeper-3.4.6/bin/zkServer.sh start

read -p "请输入zookeeper的地址: " zookeeper-ip

sed -i  's/192\.168\.0\.123/$zookeeper-ip/g' config.ini

###assets //dashboard的静态文件目录
###codis-config codis命令式配置管理组件
###codis-proxy codis 代理也就是核心组件
###codis-server codis基于redis2.8.21定制版redis

mkdir /workspace/golang/src/github.com/CodisLabs/codis/wk
cp /workspace/golang/src/github.com/CodisLabs/codis/config.ini  /workspace/golang/src/github.com/CodisLabs/codis/wk/

4:启动 dashboard(codis-config上操作)
cd $CODIS_HOME && ./bin/codis-config -c $CODIS_HOME/wk/config.ini dashboard &

可以从浏览器打开http://192.168.16.239:18087/admin/

5:初始化 slot,该命令会在zookeeper上创建slot相关信息
cd $CODIS_HOME &&  ./bin/codis-config -c $CODIS_HOME/wk/config.ini slot init &

6:启动 Codis Redis , 和官方的Redis Server参数一样(codis-server上操作)
cp extern/redis-2.8.21/redis.conf wk/
cd $CODIS_HOME && ./codis-server ../extern/redis-2.8.21/redis.conf                    (端口6379)作为16.241的6380的master
                  ./codis-server ../extern/redis-2.8.21/redis6380.conf                   (端口6380)作为16.241的6379的slave

7:添加 Redis Server Group , 每一个 Server Group 作为一个 Redis 服务器组存在, 只允许有一个 master,
     可以有多个 slave, group id 仅支持大于等于1的整数(codis-config上操作)
    ./codis-config -c ../wk/config.ini server add 1 192.168.16.239:6379 master
    ./codis-config -c ../wk/config.ini server add 1 192.168.16.241:6380 slave
    
    
    ./codis-config -c ../wk/config.ini server add 2 192.168.16.241:6379 master
    ./codis-config -c ../wk/config.ini server add 2 192.168.16.239:6380 slave

8: 启动241上面的redis服务,作为slave
/codis-server ../extern/redis-2.8.21/redis.conf                作为16.239的6380 的master
/codis-server ../extern/redis-2.8.21/redis6380.conf              作为16.239的6379 的slave

****************注意,不需要从redis.conf 去配置slave,必须用codis-server 去启动redis***************

[root@shell bin]# 2016/04/28 14:16:48 dashboard.go:160: [INFO] dashboard listening on addr: :18087
2016/04/28 14:16:49 dashboard.go:234: [PANIC] create zk node failed
[error]: dashboard already exists: {"addr": "192.168.16.239:18087", "pid": 2280}
[stack]:
    3   /workspace/golang/src/github.com/CodisLabs/codis/cmd/cconfig/dashboard.go:234
            main.runDashboard
    2   /workspace/golang/src/github.com/CodisLabs/codis/cmd/cconfig/dashboard.go:54
            main.cmdDashboard
    1   /workspace/golang/src/github.com/CodisLabs/codis/cmd/cconfig/main.go:85
            main.runCommand
    0   /workspace/golang/src/github.com/CodisLabs/codis/cmd/cconfig/main.go:152
            main.main
        ... ...
        
解决:
./zkCli.sh
[zk: localhost:2181(CONNECTED) 11] rmr  /zk/codis

原因:
2016/04/28 14:52:44 dashboard.go:143: [INFO] dashboard node created: /zk/codis/db_wk/dashboard, {"addr": "192.168.16.239:18087", "pid": 8578}
2016/04/28 14:52:44 dashboard.go:144: [WARN] ********** Attention **********
2016/04/28 14:52:44 dashboard.go:145: [WARN] You should use `kill {pid}` rather than `kill -9 {pid}` to stop me,
2016/04/28 14:52:44 dashboard.go:146: [WARN] or the node resisted on zk will not be cleaned when I'm quiting and you must remove it manually

9:设置 server group 服务的 slot 范围

Codis 采用 Pre-sharding 的技术来实现数据的分片, 默认分成 1024 个 slots (0-1023), 对于每个key来说, 通过以下公式确定所属的
Slot Id : SlotId = crc32(key) % 1024 每一个 slot 都会有一个且必须有一个特定的 server group id 来表示这个 slot 的数据由哪个 server group 来提供

[root@shell bin]# ./codis-config  -c ../wk/config.ini slot -h
usage:
        codis-config slot init [-f]
        codis-config slot info <slot_id>
        codis-config slot set <slot_id> <group_id> <status>
        codis-config slot range-set <slot_from> <slot_to> <group_id> <status>
        codis-config slot migrate <slot_from> <slot_to> <group_id> [--delay=<delay_time_in_ms>]
        codis-config slot rebalance [--delay=<delay_time_in_ms>]
        
[root@shell bin]# ./codis-config  -c ../wk/config.ini slot  range-set 0 511 1 online
{
  "msg": "OK",
  "ret": 0
}

到浏览器上看看效果

或者
[root@shell bin]# ./codis-config  -c ../wk/config.ini slot  info 1
{
  "group_id": 1,
  "id": 1,
  "product_name": "wk",
  "state": {
    "last_op_ts": "0",
    "migrate_status": {
      "from": -1,
      "to": -1
    },
    "status": "online"
  }
 
10:启动 codis-proxy

[root@shell bin]# ./codis-proxy -c ../wk/config.ini -L ./log/proxy.log  --cpu=4 --addr=0.0.0.0:19000 --http-addr=0.0.0.0:11000 &

_____  ____    ____/ /  (_)  _____
 / ___/ / __ \  / __  /  / /  / ___/
/ /__  / /_/ / / /_/ /  / /  (__  )
\___/  \____/  \__,_/  /_/  /____/

在241上启动第二个代理服务器
 ./codis-proxy -c ../wk/config.ini -L ./log/proxy.log  --cpu=4 --addr=0.0.0.0:19000 --http-addr=0.0.0.0:11000 &
 
 在浏览器上看到proxy_2是offile状态,如果用命令去启动proxy_2 online状态,则提示下面错误,需要去启动dashboard,我们直接在界面上启动为online状态

[root@zabbix bin]# ./codis-config -c ../wk/config.ini proxy online proxy_2
2016/05/03 13:43:12 utils.go:49: [ERROR] can't connect to dashboard, please check 'dashboard_addr' is corrent in config file
[stack]:

转载于:https://www.cnblogs.com/liangsky/p/5546129.html

codis 部署和测试相关推荐

  1. lzg_ad:使用Virtual PC 部署和测试XP Embedded 发布镜像

    注意: 本文将假设你已经熟悉并会使用Virtual PC. 如果对Visual PC的使用方法还不了解,请参考: http://www.petri.co.il/virtual_create_virtu ...

  2. 【区块链】Truffle 部署 编译 测试 智能合约 的 完整实践操作

    本文首发自我的CSDN博客,原文链接如下 blog.csdn.net/diandianxiy- 目标 搭建开发环境 创建一个Truffle项目 编写智能合约 编译转移智能合约 测试智能合约 创建用户界 ...

  3. Ubuntu 18.04上进行HyperLedger Fabric 1.2.0环境及链码安装、部署和测试

    Ubuntu 18.04上进行HyperLedger Fabric 1.2.0环境及链码安装.部署和测试 1.环境安装 HyperLedger Fabric 1.2.0环境的安装推荐一篇博客:http ...

  4. NATS服务器部署及测试

    版权声明:本文为博主chszs的原创文章,未经博主允许不得转载. https://blog.csdn.net/chszs/article/details/51002444 NATS服务器部署及测试 作 ...

  5. jpql hql_无需部署即可测试JPQL / HQL

    jpql hql 您是否曾经想在不完全部署应用程序的情况下测试JPQL / HQL? 我们今天在这里看到的是适用于任何JPA实现的简单解决方案:Hibernate,OpenJPA,EclipseLin ...

  6. 无需部署即可测试JPQL / HQL

    您是否曾经想在不完全部署应用程序的情况下测试JPQL / HQL? 我们今天在这里看到的是适用于任何JPA实现的简单解决方案:Hibernate,OpenJPA,EclipseLink等. 这篇文章中 ...

  7. Openstack入门篇(十一)之neutron服务(控制节点)的部署与测试

    1.Neutron的介绍 Neutron 为整个 OpenStack 环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙和 *** 等.Neutron 提供了一个灵活的框架,通过配置,无论是开 ...

  8. Cobar部署与测试

    原文出自  http://www.abcdocker.com/abcdocker/84 Cobar部署与测试 一.Cobar介绍 1.1功能概述: Cobar是关系型数据的分布式处理系统,它可以在分布 ...

  9. HCIBench_2.3.1部署_VSAN_测试工具

    HCIBench_2.3.1部署_VSAN_测试工具 https://blog.csdn.net/fq3758/article/details/106216549 版权 前话:近期做VSAN性能测试, ...

最新文章

  1. 通过GeoIP2分析访问者IP获取地理位置信息
  2. 潜行者活动硬盘电脑,你也可以打造
  3. 华南理工计算机网络随随堂,计算机组成原理-2019春华工网络教育随堂练习
  4. sap 标准委外和工序委外_「SAP技术」SAP MM 委外加工采购流程里副产品的收货
  5. Orac and Medians CodeForces - 1350D(思维)
  6. 看着手机会让您晕眩吗? 禁用动画
  7. lua如何判断是否支持cookie_如何判断页面布局是否合理?
  8. FlinkCdc从Mysql指定的binlog日志offsetPos位置开始读取数据
  9. 文件 md5 查看 命令
  10. C#显示和隐藏 Excel 工作表及工作表中的行与列
  11. 加拿大教授 武 计算机,加拿大卡尔加里大学Yingxu Wang教授访问计算机学院
  12. 计算机蓝屏无法启动不了系统怎么办,电脑开机蓝屏死机,无法进入系统怎么办?...
  13. ocr识别身份证护照阅读器
  14. 服务器基线加固脚本_安全服务之安全基线及加固(一)Windows篇
  15. YApi接口管理平台远程代码执行漏洞(含批量POC)
  16. 简易实现AI虚拟鼠标—手势控制鼠标
  17. 题目60 相同字母消除法(栈)(ok)
  18. vscode php 无法跳转到定义
  19. 什么是 TF-IDF 算法?
  20. 嵌入式系统(二):RISC-V处理器1

热门文章

  1. PHP版本号--phpversion(),PHP_VERSION,PHP_VERSION_ID
  2. docker学习笔记16:Dockerfile 指令 ADD 和 COPY介绍
  3. [设计模式] 8 组合模式 Composite
  4. uCOS-II任务的挂起和恢复
  5. postmessage与sendmessage的区别
  6. spring AoP学习 -----AoP织入器ProxyFactory剖析
  7. Alpha Blending a Bitmap 失败 原因
  8. 网站“注册流程”如何“照顾用户”?
  9. 使用docker部署lnmp
  10. .net连接mysql数据_.net连接MYSQL数据库 转载