在讲述Codis集群的环境搭建之前,我先大致的介绍一下Codis
- Codis是什么?
- Codis是一款分布式Redis的解决方案;
- Codis可以使上层应用可以像使用单机的 Redis 一样使用Redis集群
- Codis可以在应用运行期间动态增减节点和漂移插槽
- 为什么使用Codis?
- Redis Cluster的数据存储模块和分布式的逻辑模块是耦合在一起的,这样带来的好处和缺点都同样明显,好处在于配置简单,缺点在于很难实现平滑升级
- 线上维护Redis集群是一个比较耗费工作量的工作,尤其是涉及到插槽的分配迁移、以及增减Redis节点等,需要小心再小心
- 对应用程序不友好,单机Redis和集群Redis的JavaAPI完全不一致,两者的切换会造成大量开发工作
Codis的主要目标就是为了解决以上这些问题的。
讲述完了Codis是什么以及为什么使用Codis。那么接下来,我们开始完成Codis的集群搭建吧。
- 环境准备:
codis3.2.2-go1.8.5-linux.tar.gz
glibc-2.17.tar.gz
go1.10.linux-amd64.tar.gz
zookeeper-3.4.11.tar.gz
- Go环境配置安装
由于Codis是使用GO语言编写的,所以使用Codis需要先安装GO语言环境,安装过程如下:
将go1.10.linux-amd64.tar.gz解压至预期安装目录下,我这里将其放置在 /usr/local/ 目录下,截图如下:
配置GOROOT环境变量 vi /etc/profile
GOPATH的目录是用来标识GO的所有第三方软件放置位置,目前我们只有一个Codis
- Zookeeper环境配置安装
Codis依赖于Zookeeper,首先我们将Zookeeper解压至 /usr/local/ 目录下
将Zookeeper的conf目录下zoo.sample.cfg修改为zoo.cfg文件
- Codis环境配置安装
将codis3.2.2-go1.8.5-linux.tar.gz解压至刚刚配置的GOPATH目录下,然后依次配置即可。
Codis-server配置启动
codis-server其实就相当于redis-server,也就是codis-server可以启动很多个redis实例
创建配置文件存储目录[因为要创建两个Redis实例]
mkdir -p /usr/local/codis3.2.2-go1.8.5-linux/conf/redis/redis_6379 mkdir -p /usr/local/codis3.2.2-go1.8.5-linux/conf/redis/redis_6380
拷贝redis的配置文件redis.conf至相应目录(注意redis的大版本和codis的大版本保持一致,我这里codis的版本是3.2.2,所以引用的redis版本也是3.X.X版本的,如果用redis4.X.X版本 会报错)
修改Redis配置文件(两个配置文件修改基本保持一致,除了端口号不一致)
启动codis-server
Codis-dashboard配置启动
(1). 手动创建配置文件dashboard.toml
(2). 执行命令:
(3). 修改 dashboard.toml 配置文件/usr/local/codis3.2.2-go1.8.5-linux/codis-dashboard --default-config | tee /usr/local/codis3.2.2-go1.8.5-linux/conf/codis/dashboard.toml
(4)启动dashboard命令:【注意替换自己的codis路径】
nohup /usr/local/codis3.2.2-go1.8.5-linux/codis-dashboard --ncpu=4 --config=/usr/local/codis3.2.2-go1.8.5-linux/conf/codis/dashboard.toml --log=/usr/local/codis3.2.2-go1.8.5-linux/logs/dashboard.log --log-level=WARN &
(5)关闭dashboard命令:
/usr/local/codis3.2.2-go1.8.5-linux/codis-admin --dashboard=192.168.75.131:18080 --shutdown
Codis-Proxy配置启动
(1). 手动创建 proxy.toml 配置文件
(2). 执行以下命令:
/usr/local/codis3.2.2-go1.8.5-linux/codis-proxy --default-config |tee /usr/local/codis3.2.2-go1.8.5-linux/conf/codis/proxy.toml
(3). 修改proxy配置文件
(4)启动proxy
nohup /usr/local/codis3.2.2-go1.8.5-linux/codis-proxy --ncpu=4 --config=/usr/local/codis3.2.2-go1.8.5-linux/conf/codis/proxy.toml --log=/usr/local/codis3.2.2-go1.8.5-linux/logs/proxy.log --log-level=WARN &
(5)关联proxy与dashboard
/usr/local/codis3.2.2-go1.8.5-linux/codis-admin --dashboard=192.168.75.131:18080 --create-proxy -x192.168.75.131:11080
Codis-FE配置启动
(1). 配置codis-fe
/usr/local/codis3.2.2-go1.8.5-linux/codis-admin --dashboard-list --zookeeper=192.168.75.131:2181 |tee /usr/local/codis3.2.2-go1.8.5-linux/conf/codis/codis.json
(2). 启动codis-fe
nohup ./codis-fe --ncpu=2 --log=logs/fe.log --log-level=WARN --dashboard-list=conf/codis/codis.json --listen=192.168,75.131:8080 &
(3). Codis配置演示
访问管理地址
至此整个Codis集群环境就已经搭建完成了,大家可以尽情使用页面简单的操作和查看Redis集群状态了。
最后还是要大家说以下,如果希望使用Java客户端连接Codis集群,只要连接proxy即可,我们之前配置的proxy地址为:192.168.4.130:19000.