天天看点

Redis集群实践操作之Codis

在讲述Codis集群的环境搭建之前,我先大致的介绍一下Codis

  • Codis是什么?
  1. Codis是一款分布式Redis的解决方案;
  2. Codis可以使上层应用可以像使用单机的 Redis 一样使用Redis集群
  3. Codis可以在应用运行期间动态增减节点和漂移插槽
  • 为什么使用Codis?
  1. Redis Cluster的数据存储模块和分布式的逻辑模块是耦合在一起的,这样带来的好处和缺点都同样明显,好处在于配置简单,缺点在于很难实现平滑升级
  2. 线上维护Redis集群是一个比较耗费工作量的工作,尤其是涉及到插槽的分配迁移、以及增减Redis节点等,需要小心再小心
  3. 对应用程序不友好,单机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/ 目录下,截图如下:

Redis集群实践操作之Codis

配置GOROOT环境变量 vi /etc/profile

Redis集群实践操作之Codis
GOPATH的目录是用来标识GO的所有第三方软件放置位置,目前我们只有一个Codis
  • Zookeeper环境配置安装

Codis依赖于Zookeeper,首先我们将Zookeeper解压至 /usr/local/ 目录下

Redis集群实践操作之Codis
将Zookeeper的conf目录下zoo.sample.cfg修改为zoo.cfg文件
Redis集群实践操作之Codis
  • 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集群实践操作之Codis
拷贝redis的配置文件redis.conf至相应目录(注意redis的大版本和codis的大版本保持一致,我这里codis的版本是3.2.2,所以引用的redis版本也是3.X.X版本的,如果用redis4.X.X版本 会报错)
Redis集群实践操作之Codis
修改Redis配置文件(两个配置文件修改基本保持一致,除了端口号不一致)
Redis集群实践操作之Codis
Redis集群实践操作之Codis
Redis集群实践操作之Codis
启动codis-server
Redis集群实践操作之Codis

Codis-dashboard配置启动

(1). 手动创建配置文件dashboard.toml

(2). 执行命令:

/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
           
(3). 修改  dashboard.toml 配置文件
Redis集群实践操作之Codis
(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 &
           
Redis集群实践操作之Codis
(5)关闭dashboard命令:
/usr/local/codis3.2.2-go1.8.5-linux/codis-admin --dashboard=192.168.75.131:18080 --shutdown
           
Redis集群实践操作之Codis
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
           
Redis集群实践操作之Codis
(3). 修改proxy配置文件
Redis集群实践操作之Codis
(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 &
           
Redis集群实践操作之Codis
(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
           
Redis集群实践操作之Codis

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
           
Redis集群实践操作之Codis
(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 &
           
Redis集群实践操作之Codis

(3). Codis配置演示

访问管理地址

http://192.168.75.131:8080

Redis集群实践操作之Codis
至此整个Codis集群环境就已经搭建完成了,大家可以尽情使用页面简单的操作和查看Redis集群状态了。
最后还是要大家说以下,如果希望使用Java客户端连接Codis集群,只要连接proxy即可,我们之前配置的proxy地址为:192.168.4.130:19000.