一、基本介绍及相关环境安装
1.1 codis简介
由于日渐增长的并发量,传统的单机Redis已经越来越不能满足如今的网络请求量了,在这个背景下,Redis分布式解决方法之一的Codis应运而生。
Codis对于客户端来说基本透明,除了一些不支持的命令外,其他操作基本上与Redis无异。但是Codis重新实现了Redis协议,新增了一些操作slot(槽点)的命令,最多支持1024个槽点。举个栗子,如果你的主机足够的多,也可以1个主机作为1个槽点,则最多可搭建一个包含1024个主机的超大型分布式Redis集群。
1.2 主要组成部分
Codis主要由以下部分组成:
- codis-proxy:客户端连接的Redis代理服务,实现了Redis协议,除了部分不支持的命令外,其他基本跟原生Redis无区别。对于同一个业务群来说,可部署多个proxy代理,不同的proxy代理之间由codis-dashboard保证状态同步。
- codis-server:可理解为redis-server,但是新增了一些对于槽点(slot)操作的命令。
- codis-dashboard:集群管理工具,支持codis-proxy、codis-server的添加、删除以及数据迁移等操作。在集群状态发生改变时,codis-dashboard维护集群下所有codis-proxy的状态同步。
- codis-fe:集群管理界面。如果你部署成功了一个codis集群,可以通过127.0.0.1:9090去访问这个界面,也可以配置多个集群实例共享一个前端界面;通过配置文件管理后端codis,配置文件自动更新。
- codis-ha:用于保证codis集群高可用的工具。即,codis发现某个Group的Master出现异常,将会提升该组中的某个slave为master,标记出现异常的节点为offline。
- codis-admin:集群管理的命令行工具,可用于控制codis-proxy、codis-dashboard状态以及访问外部存储。
- redis-benchmark:codis官方自带的redis性能测试工具。
- reids-cli:codis的redis客户端,不能直接启动原生redis-cli,因为原生redis-cli可能不识别部分codis命令。
- redis-sentinel:哨兵。
- 存储:codis默认的存储是filesystem,当你需要部署分布式集群的时候,则需要选择zookeeper或者etcd。
1.3 需要的环境及相关安装包
如果要搭建一个可用的codis集群,还是需要不好外部依赖环境的,具体如下:
- java:因为zookeeper是java编写的,其运行要依赖于java环境,具体安装比较简单,不再赘述。
- go:以为codis是go编写的,所以也得下载go。
1.3.1 安装go环境
命令行或者手动到官网下载(可能需要翻qiang):
$ wget https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz
$ tar -zxvf go1.13.5.linux-amd64.tar.gz
解压之后:
配置环境变量:
$ vi /etc/profile
...编辑保存之后
$ go version # 查看go的版本,显示类似如下内容则表示安装成功,显示:go version go1.13.5 linux/amd64
这里说明下,因为我们接下来下载的codis安装包将要安装到…/codis3.2.2 这个目录下,先定义$GOPATH=目录路径,是因为官方安装包里面也是根据这个变量进行操作的,所以目录地址可以自定义,但是变量名称最好不要有所改动,就叫$GOPATH。
1.3.2 安装codis
注意,Codis需要下载到:$GOPATH/src/github.com/CodisLabs/codis。
codis依赖于go环境,$