首先,我们要明确目标,本篇内容的主要目的是讲解Codis。
有人可能要说,作者是个标题党,明明是Redis最佳实践呀!!! 各位看官,稍安勿燥,且听臣妾娓娓道来 O(∩_∩)O。
那么,我们先来说说Codis是什么:
- Codis是一款分布式Redis的解决方案;
- Codis可以使上层应用可以像使用单机的 Redis 一样使用Redis集群
- Codis可以在应用运行期间动态增减节点和漂移插槽
我们为什么要使用Codis呢,这个话题要从Redis集群的问题入手了
- redis Cluster的数据存储模块和分布式的逻辑模块是耦合在一起的,这样带来的好处和缺点都同样明显,好处在于配置简单,缺点在于很难实现平滑升级
- 线上维护Redis集群是一个比较耗费工作量的工作,尤其是涉及到插槽的分配迁移、以及增减Redis节点等,需要小心再小心
- 对应用程序不友好,单机Redis和集群Redis的JavaAPI完全不一致,两者的切换会造成大量开发工作【可能这个才是我最恨Redis集群的原因,O(∩_∩)O】
Codis的主要目标就是为了解决这些问题的,至于解决的方式在本文就不重点介绍了,大家可以关注下,里面有详细的讲解。
《Tomcat+Memcached/Redis集群 构建高可用解决方案》
这门课程:https://coding.imooc.com/class/186.html
本文主要的目标是帮助大家完成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解压至预期安装目录下,笔者习惯将内容放置在/opt/install下,截图如下:
go的默认环境要求必须在/usr/local下,所以更改目录需要配置GOROOT环境变量
GOPATH的目录是用来标识GO的所有第三方软件放置位置,当然了,我们现在只有一个Codis
Zookeeper环境配置安装
Codis是一款强依赖于Zookeeper的软件,所以我们需要安装它。
- 首先我们将Zookeeper解压至预期目录,依照习惯,笔者将内容解压至/opt/install目录下
- 将Zookeeper的conf目录下zoo.sample.cfg修改为zoo.cfg文件
- 启动Zookeeper即可,启动命令在Zookeeper的bin目录下的zkServer.sh
Codis环境配置安装
将codis3.2.2-go1.8.5-linux.tar.gz解压至刚刚配置的GOPATH目录下,然后依次配置即可,以下都使用%codis_path%来表示codis的解压根目录哈
- Codis-server配置启动
首先我们要明确,codis-server其实就相当于redis-server,也就是codis-server可以启动很多个redis实例
- 创建配置文件存储目录[因为要创建两个Redis实例]
mkdir -p %codis_path%/conf/redis/redis_6379
mkdir -p %codis_path%/conf/redis/redis_6380
- 拷贝redis的配置文件至相应目录下【ps:如果没有文件的话,可以去下载一个Redis,然后将配置文件拷贝出来,这里就不赘述了】
- 修改Redis配置文件【PS:两个配置文件修改的内容基本一致,所以合并一起说】
<p>- 启动codis-server
%codis_path%/codis-server %codis_path%/conf/redis/redis_6379/redis.conf
%codis_path%/codis-server %codis_path%/conf/redis/redis_6380/redis.conf<p>
- Codis-dashboard配置启动
- 创建配置文件
%codis_path%/codis-dashboard --default-config | tee %codis_path%/config/codis/dashboard.toml<p>- 修改配置文件
- 启动dashboard命令:【注意替换自己的codis路径】
nohup /opt/install/codis3.2.2-go1.8.5-linux/codis-dashboard \
--ncpu=4 \
--config=/opt/install/codis3.2.2-go1.8.5-linux/config/codis/dashboard.toml \
--log=/opt/install/codis3.2.2-go1.8.5-linux/logs/dashboard.log \
--log-level=WARN &<p>
-- 关闭dashboard命令:
/opt/install/codis3.2.2-go1.8.5-linux/codis-admin --dashboard=192.168.4.130:18080 --shutdown<p>
<p>- Codis-Proxy配置启动
- 生成proxy配置文件【注意替换自己的codis路径】
/opt/install/codis3.2.2-go1.8.5-linux/codis-proxy --default-config | tee /opt/install/codis3.2.2-go1.8.5-linux/config/codis/proxy.toml<p>- 修改proxy配置文件
- 启动proxy
nohup /opt/install/codis3.2.2-go1.8.5-linux/codis-proxy --ncpu=4 --config=/opt/install/codis3.2.2-go1.8.5-linux/config/codis/proxy.toml --log=/opt/install/codis3.2.2-go1.8.5-linux/logs/proxy.log --log-level=WARN &<p>
- 关联proxy与dashboard
/opt/install/codis3.2.2-go1.8.5-linux/codis-admin --dashboard=192.168.4.130:18080 --create-proxy -x192.168.4.130:11080<p>
- Codis-FE配置启动
- 配置codis-fe
/opt/install/codis3.2.2-go1.8.5-linux/codis-admin --dashboard-list --zookeeper=192.168.4.130:2181 | tee /opt/install/codis3.2.2-go1.8.5-linux/config/codis/codis.json<p>
- 启动codis-fe
nohup ./codis-fe --ncpu=2 --log=logs/fe.log --log-level=WARN --dashboard-list=config/codis/codis.json --listen=192.168.4.130:8080 & <p>
- Codis配置演示
- 访问管理地址
http://192.168.4.130:8080
至此整个Codis集群环境就已经搭建完成了,大家可以尽情使用页面简单的操作和查看Redis集群状态了。
最后还是要大家说以下,如果希望使用Java客户端连接Codis集群,只要连接proxy即可,我们之前配置的proxy地址为:192.168.4.130:19000.
更多关于Codis集群的使用以及Tomcat与Redis结合的内容,大家可以关注:
《Tomcat+Memcached/Redis集群 构建高可用解决方案》
这门课程:https://coding.imooc.com/class/186.html
如果对本文的内容有问题或者希望了解更多内容,可以在本文下方进行回复,笔者会尽力帮助大家解决。
热门评论
zan