为了账号安全,请及时绑定邮箱和手机立即绑定

Redis集群最佳实践

标签:
Java Linux

首先,我们要明确目标,本篇内容的主要目的是讲解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的软件,所以我们需要安装它。

  1. 首先我们将Zookeeper解压至预期目录,依照习惯,笔者将内容解压至/opt/install目录下
    图片描述
  2. 将Zookeeper的conf目录下zoo.sample.cfg修改为zoo.cfg文件
    图片描述
  3. 启动Zookeeper即可,启动命令在Zookeeper的bin目录下的zkServer.sh
    图片描述

Codis环境配置安装

将codis3.2.2-go1.8.5-linux.tar.gz解压至刚刚配置的GOPATH目录下,然后依次配置即可,以下都使用%codis_path%来表示codis的解压根目录哈

  1. 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>
      图片描述
  2. 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>
  3. 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>
      图片描述
  4. 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>
      图片描述
  5. Codis配置演示

至此整个Codis集群环境就已经搭建完成了,大家可以尽情使用页面简单的操作和查看Redis集群状态了。

最后还是要大家说以下,如果希望使用Java客户端连接Codis集群,只要连接proxy即可,我们之前配置的proxy地址为:192.168.4.130:19000.

更多关于Codis集群的使用以及Tomcat与Redis结合的内容,大家可以关注:

《Tomcat+Memcached/Redis集群 构建高可用解决方案》

这门课程:https://coding.imooc.com/class/186.html

如果对本文的内容有问题或者希望了解更多内容,可以在本文下方进行回复,笔者会尽力帮助大家解决。

点击查看更多内容
15人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
1.5万
获赞与收藏
624

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消