codis安装部署

codis安装部署

codis简介

Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别, 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务.

redis集群搭建_亲自操作

redis哨兵搭建_主从复制高可用解决方案

Codis 由四部分组成:

  • Codis Proxy (codis-proxy)

  • Codis Manager (codis-config)

  • Codis Redis (codis-server)

  • ZooKeeper

特性:

  • 自动平衡

  • 使用非常简单

  • 图形化的面板和管理工具

  • 支持绝大多数 Redis 命令,完全兼容 twemproxy

  • 支持 Redis 原生客户端

  • 安全而且透明的数据移植,可根据需要轻松添加和删除节点

  • 提供命令行接口

  • RESTful APIs

Zookeeper安装

为什么:
Codis依赖Zookeeper来存放数据路由表和codis-proxy节点的元信息。也可以用etcd替换Zookeeper

jdk环境搭建:
zookeeper依赖java环境,所以要先安装jdk。

zookeeper下载:
参看:http://www.blogjava.net/hello-yun/archive/2012/05/03/377250.html

cd /data/software
wget http://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar -xzvf zookeeper-3.4.6.tar.gz
cd zookeeper-3.4.6  cp ./conf/zoo_sample.cfg ./conf/zoo.cfg
echo "1" > /data/datas/zookeeper/myid

zookeeper启动:

./bin/zkServer.sh start

MacBook Linux安装zookeeper

Codis安装

Codis依赖:

MacBook Linux 树莓派raspberrypi安装Golang环境

Codis依赖go环境,并且编译Codis源代码使用了godep,安装前先执行go、godep确认是否都已经安装好

离线安装 godep 方法:
1、运行 git clone https://github.com/tools/godep.git 下载 godep 源码;

2、将 godep 目录移动到 $GOPATH/src/github.com/tools/godep,并进入该目录;

3、运行命令 go install ./,该命令会将 godep 生成到 $GOPATH/bin 下。

Codis下载:

wget安装codis的方式会下载codis最新master分支的版本,这里我们手动下载安装指定版本

cd /data/gopath/src/github.com

mkdir CodisLabs

cd CodisLabs

git clone https://github.com/CodisLabs/codis.git -b release3.0

编译Codis源代码:

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

make

复制codis可执行命令到data指定目录,并创建config、logs、redis-conf目录存放配置文件、codis-server的redis.conf文件和log文件

cd /data/beyond; mkdir codis; cd codis; mkdir config; mkdir redis-conf

cd /data/logs; mkdir codis

cp -r /data/gopath/src/github.com/CodisLabs/codis/bin /data/beyond/codis/bin

Codis Dashboard启动:

生成默认配置文件

cd /data/beyond/codis

./bin/codis-dashboard --default-config | tee dashboard.toml  
编辑dashboard.toml修改product_name,product_auth(改密码需要和redis设置的密码一样,httpserver访问codis proxy也是这个密码) codis认证用

mv dashboard.toml ./config

启动dashboard(ncpu为cpu核数,config指定配置文件地址,log指定log文件生成地址)

nohup ./bin/codis-dashboard --ncpu=2 --config=/data/beyond/codis/config/dashboard.toml \
--log=/data/logs/codis/dashboard.log --log-level=WARN &

Codis Proxy启动:

cd /data/beyond/codis

生成默认配置文件
./bin/codis-proxy --default-config | tee proxy.toml
proxy.toml也有product_name,product_auth配置,这个和dashboard的要一致

mv proxy.toml ./config

启动proxy
nohup ./bin/codis-proxy --ncpu=2 --config=/data/beyond/codis/config/proxy.toml \
--log=/data/logs/codis/proxy.log --log-level=WARN &

codis-proxy 启动后,处于 waiting 状态,监听 proxy_addr 地址,但是不会 accept 连接,添加到集群并完成集群状态的同步,才能改变状态为 online。添加的方法有以下两种:

通过 codis-fe 添加:通过 Add Proxy 按钮,将 admin_addr 加入到集群中;(codis-fe是一个可视化管理界面,后面介绍)
通过 codis-admin 命令行工具添加,方法如下:

$ ./bin/codis-admin --dashboard=127.0.0.1:18080 --create-proxy -x 127.0.0.1:11080

其中 127.0.0.1:18080 以及 127.0.0.1:11080 分别为 dashboard 和 proxy 的 admin_addr 地址,这两个地址在dashboard.toml和proxy.toml配置文件中;

添加过程中,dashboard 会完成如下一系列动作:

获取 proxy 信息,对集群 name 以及 auth 进行验证,并将其信息写入到外部存储中;
同步 slots 状态;
标记 proxy 状态为 online,此后 proxy 开始 accept 连接并开始提供服务;

Codis Server启动

cd /data/beyond/codis

使用默认redis配置,指定端口开启一个redis服务
./bin/codis-server --port 6000 &

使用默认redis配置,指定端口开启一个redis slave,这里master为6000 slave为6001
./bin/codis-server --port 6001 --slaveof 127.0.0.1 6000 &

codis是以Group来管理codis-server的,一个Group由一个master和slave组成,slave可以没有,可以创建多个Group
如果开启了多台redis服务,可通过codis-fe来创建Group,然后把codise-server加入到Group,然后分配slot到Group,总共有1024个槽位,slot可以在Group间进行迁移,数据就保存在slot中
此外如果要自定义redis配置的话,比如设置密码等需要自己提供redis配置文件,codis-server指定配置文件启动
./bin/codis-server ./redis-conf/6000.conf

另外codis集群只需安装一个codis proxy、codis dashboard、codis fe,codis server多个,有的机器可能就只需装codis server

Codis FE启动(可选组件,codis可视化操作界面,建议安装)

cd /data/beyond/codis

生成默认配置
./bin/codis-admin --dashboard-list --zookeeper=127.0.0.1:2181 | tee codis.json

mv codis.json /data/beyond/config

启动codis fe
nohup ./bin/codis-fe --ncpu=2 --log=/data/logs/codis/fe.log --log-level=WARN \
    --dashboard-list=/data/beyond/codis/config/codis.json --listen=0.0.0.0:9000 &

浏览器输入*:9000就可以访问codis管理界面了

基本使用:
如果没有Proxy,点击Add Proxy,输入proxy.toml设置的admin_addr地址
添加group,然后添加codis-server到group,每个group可以添加一个redis master,0或多个redis slave,可以添加多个group
中间migrate那里可以迁移指定slot或者范围slot到指定group

在这里插入图片描述
在这里插入图片描述

使用codis(单台proxy)

修改配置文件,把redis_addr指定为proxy_addr地址即可,如果指定单独某台redis,则只会对单台redis进行操作

redis-cli连接proxy(单台proxy)

和连接其他redis server一样,连接proxy_addr即可

./redis-cli -p 19000
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

beyond阿亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值