Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务.
1.安装go环境
##新建一个快照server1,https://studygolang.com/dl下载go1.8.1.linux-amd64.tar.gz压缩包
[root@server1 ~]# ls
go1.8.1.linux-amd64.tar.gz
[root@server1 ~]# tar zxf go1.8.1.linux-amd64.tar.gz -C /usr/local/
[root@server1 ~]# cd /usr/local/
[root@server1 local]# ls
bin etc games go include lib lib64 libexec sbin share src
[root@server1 local]# cd go
[root@server1 go]# ls
api blog doc LICENSE pkg src
AUTHORS CONTRIBUTING.md favicon.ico misc README.md test
bin CONTRIBUTORS lib PATENTS robots.txt VERSION
##添加环境变量
[root@server1 go]# vim /etc/profile
#最后添加
export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH
export GOPATH=/home/user/go
[root@server1 go]# source /etc/profile
[root@server1 go]# go version
go version go1.8.1 linux/amd64
[root@server1 go]# vim h.go##测试一个go程序
[root@server1 go]# cat h.go
package main
import "fmt"
func main(){
fmt.Printf("hello,world\n")
}
[root@server1 go]# go run h.go
hello,world
2.设置编译环境
[root@server1 ~]# ls
go1.8.1.linux-amd64.tar.gz release3.2.zip
[root@server1 ~]# mkdir -p $GOPATH/src/github.com/CodisLabs
[root@server1 ~]# yum install unzip -y
[root@server1 ~]# unzip release3.2.zip -C
##安装依赖性
[root@server1 ~]# yum install -y git gcc make g++ gcc-c++ automake openssl-devel zlib-*
[root@server1 ~]# mv codis-release3.2 $GOPATH/src/github.com/CodisLabs/codis
[root@server1 codis]# ls
admin config Dockerfile Godeps MIT-LICENSE.txt scripts wandoujia_license.txt
ansible deploy example kubernetes pkg vendor
cmd doc extern Makefile README.md version
[root@server1 codis]# make
[root@server1 codis]# cd bin/
[root@server1 bin]# ls
assets codis-dashboard codis-ha codis-server redis-cli version
codis-admin codis-fe codis-proxy redis-benchmark redis-sentinel
[root@server1 bin]# pwd
/home/user/go/src/github.com/CodisLabs/codis/bin
3.快速启动
使用脚本启动codis-dashboard、codis-proxy、codis-server、codis-fe
[root@server1 codis]# cd admin/
[root@server1 admin]# ls
codis-dashboard-admin.sh codis-fe-admin.sh codis-proxy-admin.sh codis-server-admin.sh
[root@server1 admin]# ./codis-dashboard-admin.sh start
[root@server1 codis]# ./codis-proxy-admin.sh start
[root@server1 codis]# ./codis-server-admin.sh start
[root@server1 codis]# ./codis-fe-admin.sh start
[root@server1 admin]# cd ..
[root@server1 codis]# cd log##查看log,启动是否正常
[root@server1 codis]# netstat -antlp
5.可视化界面
网页访问http://10.4.17.241:9090
1)通过fe添加group
网页访问http://10.4.17.241:9090, 选择我们 codis-demo,将启动的 codis-server 加入集群 Group:NEW GROUP 行输入 1,再点击 NEW GROUP 即可 添加 Codis Server,Add Server 行输入 codis-server 地址,然后再点击 Add Server 按钮即可,如下图所示:
2)通过fe初始化slot
新增的集群 slot 状态是 offline,因此我们需要对它进行初始化(将 1024 个 slot 分配到各个 group),而初始化最快的方法可通过 fe 提供的 rebalance all slots 按钮来做,如下图所示,点击此按钮,我们即快速完成了一个集群的搭建。