1背景
codis的github地址,里面很全,并且是中文的,但是按照他的步骤还是有些坑哈
https://github.com/CodisLabs/codis

codis是一种基于高可用的redis集群的一种带来,使用go语言编写。被广泛使用到豌豆荚和其他公司。
https://github.com/CodisLabs/codis/releases 可以下载各种版本
codis特点:
图形化操作和管理员工具
支持大部分redis命令,完全兼容Twemproxy
代理数据在zookeeper中,可以实现高可用。redis cluster也可以通过主从实现高可用。

中文使用文档:
https://github.com/CodisLabs/codis/blob/release3.2/doc/tutorial_zh.md

本文测试版本
codis3.1
go1.6.2.linux-amd64
zookeeper-3.4.6
jdk8

一安装环境
只有一台虚拟机,模拟的一个codis环境
安装目录:
go:/usr/local/go
codis:/usr/local/codis
jdk:/usr/local/jdk
zk:/usr/local/zookeeper-3.4.6

下载软件目录:
/home/dowload/:我习惯下载到这个目录,然后在cp,解压,改名什么的

同一修改配置文件:
GOROOT就是go的安装目录,codis编译的时候,会根据这个目录来找go。
GOPATH就是codis的根目录,之后下载的时候会直接下载到这个目录。

export GOROOT=/usr/local/go
export GOPATH=/usr/local/codis
JAVA_HOME=/usr/local/jdk
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.6
CLASS_PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$GOROOT/bin:$JAVA_HOME/bin:$GOPATH/bin:$ZOOKEEPER_HOME/bin
export CODIS_HOME=$GOPATH/src/github.com/CodisLabs/codis
export GO15VENDOREXPERIMENT=0

1安装go
wget https://storage.googleapis.com/golang/go1.6.2.linux-amd64.tar.gz
官方推荐的https://golang.org/doc/install需要外网哈,坑

1.1修改环境变量,上面已经修改,source /etc/profile
1.2解压,移动到规定安装目录
tar -zxvf go1.6.2.linux-amd64.tar.gz
移到安装目录
cp -r go /usr/local/

1.3验证
go version

写个helloword,go来运行,如果运行成功,那么没有问,并且go版本不能太低哈,不然codis编译要失败的。
vim hello.go

package mainimport "fmt"func main(){fmt.Printf("hello,world\n")}

go run hello.go

2安装jdk
主要是zk要使用
略:上传-解压-改名-修改配置文件
java -version


3安装zk
下载到/home/dowload/目录
wcd get http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz -P /home/dowload/
3.1安装配置zk单机
移动
cp /home/dowload/zookeeper-3.4.6.tar.gz /usr/local/
解压
tar -zxvf zookeeper-3.4.6.tar.gz
删除
rm -rf zookeeper-3.4.6.tar.gz
修改配置文件:
cd /usr/local/zookeeper-3.4.6/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
这里是单机zk,就不修改配置文件了

注意在dataDir目录下,新建一个myid,写入1
cd /tmp/zookeeper
vim myid

3.2启动
/usr/local/zookeeper-3.4.6/bin/zkServer.sh start

二安装codis与组件
2.1新建目录与下载:
mkdir -p GOPATH/src/github.com/CodisLabscd GOPATH/src/github.com/CodisLabs cd GOPATH/src/github.com/CodisLabs
git clone https://github.com/CodisLabs/codis.git -b release3.1
2.2编译
cd $GOPATH/src/github.com/CodisLabs/codis
make
这里有个报错,说找不到 autoconf

yum install autoconf
重新make

这里make
go build了dashboard,proxy,admin,ha,fe哈,这些codis的一些组件哈
这里编译已经完成了。

注意的是,目录结构一定要是,gopath的自己的定义,单后后面的目录需要新建,必须和官网一样,不一样,要报错。
$GOPATH/src/github.com/CodisLabs/

这里有个快速启动-这个就不尝试了哈,且需要python3才可以哈,一般centos自带的是Python2

example/setup.py

三codis组件启动
3.1启动dashboard
修改配置文件
cd /usr/local/codis/src/github.com/CodisLabs/codis/config
vim dashboard.toml
主要就是修改ip,把admin_addr的0.0.0.0修改为自己的ip,192.168.247.140,
因为zk是单机,所以不用修改

使用命令启动dashboard
cd /usr/local/codis/src/github.com/CodisLabs/codis
nohup ./bin/codis-dashboard –ncpu=1 –config=./config/dashboard.toml –log=dashboard.log –log-level=WARN &

nohup是后台把进程在后台启动哈,–ncpu为分配的cpu个数,配置文件在哪里,日志写在哪里,日志级别。

停止dashboard:
./bin/codis-admin –dashboard=192.168.247.140:18080 –shutdown

这里必须使用命令来停止dashboard,不然会报错哈。报错的原因是,已经在zk中注册了,但是没有正常关闭的话,zk中的信息就不能删除,再次启动会报错。这里有2种解决方法:
1使用zk直接删除
./zkClie.sh -server 192.168.247.140进入zk命令行
ls /

查看zk保存了那些信息,然后
rmr /codis3
然后重启dashborad就可以了
2是使用admin命令来实现,这里必须要保证dashboard进程以及停止了。
查看方法为ps -ef | grep codis

./bin/codis-admin –remove-lock –product=codis-demo –zookeeper=127.0.0.1:2181

3.2启动Codis Proxy
修改配置文件
cd /usr/local/codis/src/github.com/CodisLabs/codis/config
vim proxy.toml
主要是把0.0.0.0的ip改为192.168.247.140,自己本机ip.其他的参数,工程名等就保持默认就好

启动proxy
nohup ./bin/codis-proxy –ncpu=1 –config=./config/proxy.toml –log=proxy.log –log-level=WARN
参数含义和启动dashboard一样哈
停止
./bin/codis-admin –proxy=192.168.247.140:11080 –auth=”” –shutdown

并且,proxy如果异常退出,请使用下面命令,原因和dashboard一样,
./bin/codis-admin –dashboard=192.168.247.140:18080 –remove-proxy –addr=192.168.247.140:11080 –force

codis-proxy 启动后,处于 waiting 状态,监听 proxy_addr 地址,但是不会 accept 连接-就是还没有在集群中,添加到集群并完成集群状态的同步,才能改变状态为 online。从图片可以看出,proxy一直在等待online。这是从日志中查看 tail proxy.log.2017-03-23

添加的方法有以下两种:
第一种:通过 codis-fe 添加:通过 Add Proxy 按钮添加

第二种:通过admin命令添加
./bin/codis-admin –dashboard=192.168.247.140:18080 –create-proxy -x 192.168.247.140:11080
分别为dashboard和proxy的地址端口
然后在查看,proxy的日志,截图如下

proxy已经oline,并且正在工作中哈。
这里我使用的是命令来添加哈。

添加的时候会完成如下操作:
● 获取 proxy 信息,对集群 name 以及 auth 进行验证,并将其信息写入到外部存储中;
● 同步 slots 状态;
● 标记 proxy 状态为 online,此后 proxy 开始 accept 连接并开始提供服务;

3.3启动Codis Server
首先,修改配置文件
本来在conif文件夹中有一个reids.conf的配置文件的,但是codis3.1没有,这就尴尬了。

自己从redis中拷贝一个过来就好了,这个就是一般的redis的配置文件,这里我是从codis3.2中下载的哈,都一样。
vim ./config/redis.conf
主要修改2点,1是redis绑定的ip,2是保护模式修改为NO
bind 192.168.247.140
pretected-mode no

启动命令
nohup ./bin/codis-server ./config/redis.conf
这个就和一般的redis一样哈

3.4启动Codis FE
nohup ./bin/codis-fe –ncpu=1 –log=fe.log –log-level=WARN –zookeeper=127.0.0.1:2181 –listen=192.168.247.140:8080 &
前一个参数是zk的地址端口,后面一个是fe的地址端口

添加一个group,然后把刚才启动的server添加到group中

刚才已经通过set a 100,设置了一个key哈
上面就有数据了哈
3.5HA
官方收了不推荐使用codis ha,推荐使用sentinel 作为HA。就不搞了

这里基本的组件以及开启了。下面来看下界面的使用。
四coids集群界面
修改防火墙,把对外端口开发,不然不能访问的哈

vim /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 18080 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 18087 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 11080 -j ACCEPT

重启防火墙
service iptables restart

输入http://192.168.247.140:8080/就可以查看集群了哈。

这里先使用redis-cli命令在redis中添加一个key
./redis-cli -h 192.168.247.140
set a 100
get a

在这个界面中,你可以管理codis集群,加一个proxy,加一个redis server,查看dashboard的情况等。

五使用java与codis交互
下次在分享吧

Codis的安装与使用相关推荐

  1. Redis集群方案,Codis安装测试

    Redis集群方案,Codis安装测试 1,关于豌豆荚开源的Codis Codis是豌豆荚使用Go和C语言开发.以代理的方式实现的一个Redis分布式集群解决方案,且完全兼容Twemproxy.Twe ...

  2. docker 安装redis第三方集群方案 codis

    docker 安装redis第三方集群方案 codis docker 安装redis第三方集群方案 codis 首先,安装好docker环境,这里不提,需要看的可以在我的博客里找, 事先准备好zook ...

  3. codis配置_分布式缓存Codis集群安装手册

    安装Go环境 解压 tar -zxf go1.8.linux-amd64.tar.gz -C /home/devops/ 添加环境变量 vim ~/.bash_profileexport GOPATH ...

  4. codis配置_Codis的安装配置

    codis是分布式redis解决方案 centos系统下安装codis需要安装相关的依赖,将图中的依赖上传至centos系统中 依次进行安装: 一.go环境的安装配置 解压到install目录下: t ...

  5. Codis的源码编译生成tar包

    一.Go环境的安装 1.下载地址 https://golang.org/dl/ 2.解压 tar -zxvf go1.7.1.linux-amd64.tar.gz -C /usr/local 3.修改 ...

  6. Codis 分布式缓存部署

    为什么80%的码农都做不了架构师?>>>    环境介绍: 1:机器三台 ,IP/hostname 如下,   hostname的设置很重要zookeeper / codis的通信都 ...

  7. codis集群的搭建

    Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有显著区别 (不支持的命令列表), 上层应用可以像使用 ...

  8. 分布式专题|吐血整理Redis 十四大知识点,帮助小白从0到1蜕变

    文章目录 摘要 环境搭建 redis Docker方式安装 使用源码方式安装redis 一.五种基本数据类型的操作与应用场景 string 字符串类型 基本指令 应用场景 hash(哈希) 基本操作指 ...

  9. Codis安装与部署

    一.Codis简介 Codis是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), ...

最新文章

  1. mysql主从复制搭建
  2. 另种思路:图片转换 变通模拟实现VS2005下TreeView的ChcekBox点击
  3. postgresal去重_PostgreSQL数据去重
  4. what do we want for advertiesement
  5. LeetCode Algorithm 22. 括号生成
  6. 深度剖析 synchronized
  7. 信息学奥赛一本通 1149:最长单词2 | OpenJudge NOI 1.13 16
  8. 中国净水装置行业市场供需与战略研究报告
  9. linux中指令简约版
  10. 全国计算机信息大赛noi,全国青少年信息学竞赛NOI系列赛事汇总
  11. 我的oh my zsh主题
  12. 推荐系统实战1——什么是推荐系统与常见的推荐系统评价指标
  13. 极速信使【IOS最强大的局域网聊天软件】
  14. 《史蒂夫·乔布斯传》经典语句段落摘录
  15. 按键精灵可以实现c语言吗,按键精灵的原理和编写方法(1)
  16. linux中c语言kbhit函数用法,检测按键(Linux中kbhit()函数的实现)
  17. cad 中的计算机在哪里打开,CAD计算器如何使用?
  18. 微信支付 postman_微信信用分是什么怎么回事 如何查看微信支付分图文攻略
  19. gpu服务器性能测试用例,WebGPU性能测试分析
  20. PHP对接国际验证码接口DEMO示例

热门文章

  1. 帝国cms灵动标签调用当前栏目下所有子栏目链接,子栏目名称,子栏目图片
  2. 常见几种在线即时通讯即时聊天在线客服的源代码
  3. SAP中冲销销售发票可以再次冲销吗?
  4. 发件人策略框架(SPF)——防止别人仿冒本域邮箱发件人
  5. STM32单片机 关于超声波模块的学习(1)
  6. 白色强人粤语第11集HTML5,《白色强人第二季》
  7. Boosting分类器
  8. php判断五子棋是否取胜,五子棋取胜的基本技巧
  9. 数据结构实验六 图的综合应用
  10. arcgis中的标注和注记