1:准备工作
1.1 说明
Codis 3.x 由以下组件组成:
- Codis Server:基于 redis-3.2.8 分支开发。增加了额外的数据结构,以支持 slot 有关的操作以及数据迁移指令。具体的修改可以参考文档 redis 的修改。
- Codis Proxy:客户端连接的 Redis 代理服务, 实现了 Redis 协议。 除部分命令不支持以外(不支持的命令列表),表现的和原生的 Redis 没有区别(就像 Twemproxy)。
- 对于同一个业务集群而言,可以同时部署多个 codis-proxy 实例;
- 不同 codis-proxy 之间由 codis-dashboard 保证状态同步。
- Codis Dashboard:集群管理工具,支持 codis-proxy、codis-server 的添加、删除,以及据迁移等操作。在集群状态发生改变时,codis-dashboard 维护集群下所有 codis-proxy 的状态的一致性。
- 对于同一个业务集群而言,同一个时刻 codis-dashboard 只能有 0个或者1个;
- 所有对集群的修改都必须通过 codis-dashboard 完成。
- Codis Admin:集群管理的命令行工具。
- 可用于控制 codis-proxy、codis-dashboard 状态以及访问外部存储。
- Codis FE:集群管理界面。
- 多个集群实例共享可以共享同一个前端展示页面;
- 通过配置文件管理后端 codis-dashboard 列表,配置文件可自动更新。
- Storage:为集群状态提供外部存储。
- 提供 Namespace 概念,不同集群的会按照不同 product name 进行组织;
- 目前仅提供了 Zookeeper、Etcd、Fs 三种实现,但是提供了抽象的 interface 可自行扩展。
1.2 机器准备
三台机器功能分配:
192.168.127.147 : zk 、proxy 、dashboard 、codis-fe、redis-master(6379)、redis-slave(6380)
192.168.127.148: proxy、redis-master(6379)、redis-slave(6380)
192.168.127.149: proxy、redis-master(6379)、redis-slave(6380)
2:安装go环境
2.1 下载go
注:需要翻墙才能打开以下链接,如果不能翻墙可以去golang中国下载,但版本可能没有最新的。

如果翻不了墙可以从以下链接下载(golang中国)
http://www.golangtc.com/download

3:安装jdk
zookeeper 会需要java环境,所以需求安装jdk,jdk的安装不在本文档中体现。
4:配置环境变量
4.1 命令: vi /etc/profile
加入以下配置:
export GOROOT=/usr/local/go export GOPATH=/usr/local/codis JAVA_HOME=/usr/local/jdk CLASS_PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.6 export PATH=$PATH:$GOROOT/bin:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin
4.2 使配置生效
#source /etc/profile
4.3 验证安装是否成功
jdk:# java -version

go : # go -v

5:安装zookeeper (生产环境需要使用zookeeper做协调)
zookeeper安装参见往期zookeeper安装手记
生产环境注意要修改:dashboard.toml 文件

修改以下两处,填写生产使用的zk地址,注释面上的配置

6:安装git
yum install -y git

7:安装codis
7.1 下载原码
下载url: https://github.com/CodisLabs/codis

7.2 创建目录
在要安装codis的目录下创建以下目录:
/codis/src/github.com/CodisLabs/codis/
命令: # mkdir -p /codis/src/github.com/CodisLabs/codis
7.3 上传原码
把7.1 下载的原码解压后,把解压文件拖到服务器上的 /codis/src/github.com/CodisLabs/codis/ 目录下

7.4 进入codis原码目录直接make安装
会有如下打印提示文件无权限,如下图所示

7.5 查找无权限的文件,如下图标记命令:
# find ./ -name "mkreleasehdr.sh"

7.6 可以看到文件的详细信息无执行权限
#stat ./extern/redis-3.2.8/src/mkreleasehdr.sh

7.7 修改文件权限,再次查看文件详细信息
#chmod +x ./extern/redis-3.2.8/src/mkreleasehdr.sh

7.8 重新执行make命令:如下图所示提示错误

解决办法:
原因是jemalloc重载了Linux下的ANSI C的malloc和free函数。解决办法:make时添加参数。
7.9 重新编译
命令:make MALLOC=libc

进入原码目录(/usr/local/codis/src/github.com/CodisLabs/codis)下执行以下命令:
#go build -i -o bin/codis-dashboard ./cmd/dashboard #go build -i -o bin/codis-proxy ./cmd/proxy #go build -i -o bin/codis-admin ./cmd/admin #go build -i -o bin/codis-fe ./cmd/fe
如下图所示:

执行完以下命令后在bin目录下会生成以下文件:

7.10 进入admin目录,修改脚本的权限改为可以执行
#chmod +x ./*

8 快速启动(搭建单机测试时用)
2分钟快速构建一个单机版测试 codis 集群,无任何外部组件依赖.源码中 admin 文件夹提供了一系列脚本以便快速启动、停止各个组件,提高运维效率。
8.1 启动codis-dashboard
运行codis-dashboard-admin.sh
命令:
# cd ./admin
# ./codis-dashboard-admin.sh start

确认是否启动成功:
(1)查看日志


(2)查看监听的端口

8.2 启动codis-proxy
命令:
#cd ./admin
# ./codis-proxy-admin.sh start

确认是否启动成功:
(1) 查看日志


(2) 查看监听的端口

8.3 启动 codis-server
命令 :
# cd admin
# ./codis-server-admin.sh start

确认是否启动成功
(1)查看日志(redis日志)
日志目录: 可以查看redis配置中指定的日志目录,此目录可以修改。(/usr/local/codis/src/github.com/CodisLabs/codis/config/redis.conf)

日志内容如下:

(2)查看监听的端口

8.4 启动codis-fe
命令:
#cd admin
#./codis-fe-admin.sh start

确认是否启动
(1)查看日志

启动失败报如下异常,找不到这个文件如下图所示

解决步骤:
- 查找找不到的这个文件所在目录

- 查看codis-fe-admin.sh 脚本指定的目录

- 把文件复制到codis-fe-admin.sh 指定的目录下
- 重新启动

(2)查看监听的端口

访问:http://192.168.127.147:9090/#codis-demo


9:codis-server(redis)配置
使用codis自己带的redis3.2.8即可。

9.1 redis 配置

9.2 redis 主从配置
修改如下图所示的配置



9.3:安装redis集群
可以启动通过修改redis配置文件,修改端口,启动多个redis实例。实现redis集群。
10 codis 启停命令
10.1 启动codis-dashboard(一个集群中只启一个dashboard)
nohup ./codis-dashboard --config=../config/dashboard.toml --log=../log/dashboard.log --log-level=WARN &
10.2 启动codis-proxy (一个集群中可以启多个proxy)
nohup ./codis-proxy --config=../config/proxy.toml --log=../log/proxy.log --log-level=WARN &
10. 3 启动codis-fe (一个集群中只启一个fe)
nohup ./codis-fe --ncpu=4 --log=fe.log --log-level=WARN --zookeeper=127.0.0.1:2181 --listen=0.0.0.0:8080 &
10.4 启动codis-server(一台机机器上可以启多个codis-server)
./codis-server ../config/redis.conf

11: 控制台使用
11.1 增加proxy

11.2 分槽

11.3 添加redis集群
本文详细介绍Codis集群的搭建过程,包括环境准备、各组件安装配置及快速启动方法,适用于初学者快速上手。
944

被折叠的 条评论
为什么被折叠?



