前言:
昨天公司要求搭建一个redis原生集群,之前一直用的codis集群(go语言 redis集群工具),想看看这两个 性能有没有差距,中间遇到 了一些坑 ,记录下来,方便以后参考并与大家共享。
第一步安装 redis:
cd /usr/local/
wget http://download.redis.io/releases/redis-3.2.1.tar.gz
tar -zxvf /redis-3.2.1.tar.gz
cd redis-3.2.1
make && make install
这一步 是下载 redis 并且编译,如果你已经有 redis了 就不需要此步骤了 ==
第二步创建redis集群节点 配置文件和存储目录
cd /usr/local/
mkdir redis_cluster //创建集群目录
mkdir -p 7001/data //创建7000和7000/data目录 分别对应集群三个节点
mkdir -p 7002/data //创建7000和7000/data目录 分别对应集群三个节点
mkdir -p 7003/data //创建7000和7000/data目录 分别对应集群三个节点
mkdir -p 7004/data //创建7000和7000/data目录 分别对应集群三个节点
mkdir -p 7005/data //创建7000和7000/data目录 分别对应集群三个节点
mkdir -p 7006/data //创建7000和7000/data目录 分别对应集群三个节点
//创建7001节点为例,拷贝到7000目录
cp /usr/local/redis-3.2.1/redis.conf ./redis_cluster/7001/redis.conf
//拷贝到7002目录
cp /usr/local/redis-3.2.1/redis.conf ./redis_cluster/7002/redis.conf
//拷贝到7003目录
cp /usr/local/redis-3.2.1/redis.conf ./redis_cluster/7003/redis.conf
//拷贝到7004目录
cp /usr/local/redis-3.2.1/redis.conf ./redis_cluster/7004/redis.conf
//拷贝到7005目录
cp /usr/local/redis-3.2.1/redis.conf ./redis_cluster/7005/redis.conf
//拷贝到7006目录
cp /usr/local/redis-3.2.1/redis.conf ./redis_cluster/7006/redis.conf
第三步修改 700X/redis.conf 的相应配置
daemonize yes //redis后台运行
port xxxx //端口7000,7002,7003,7004,7005,7006
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_xxxx.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout 5000 //请求超时 设置5秒够了
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
pidfile /var/run/redis_xxxx.pid //pid文件保存
dir /usr/local/redis-cluster/xxxx //工作目录
我们需要把7001、7002、7003、7004、7005、7006 文件目录下面 的redis .conf 里面的 上面配置 改成上面的 样子 xxxx 就代表对应的端口号!
第四步 启动redis集群节点
cd /usr/local
redis-server redis_cluster/7001/redis.conf
redis-server redis_cluster/7002/redis.conf
redis-server redis_cluster/7003/redis.conf
redis-server redis_cluster/7004/redis.conf
redis-server redis_cluster/7005/redis.conf
redis-server redis_cluster/7006/redis.conf
很简单 只要运行 redis可执行文件,然后指定我们直接写好的配置文件就好了
运行成功 后netstat -anop |grep redis
看看是否成功运行了,如果成功了就没问题了
第五步安装ruby环境,运行redis-trib.rb 文件
之前的操作我们只是创建了 6个redis 集群的节点,但是他们并没有结合起来了,官方 提供了 ruby脚本,很简单的配置一下就能 结合起来
yum -y install ruby ruby-devel rubygems rpm-build //先安装ruby 环境
gem install redis //ruby 安装redis库
环境安装好后 我们就可以启动脚本把 节点结合起来了
/usr/local/redis-3.2.1/src/redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
不要问我这个脚本哪儿来的==,redis 源码里面自带的。。。
注意这里有个小坑 就是 linux 默认安装的 ruby 版本过低,导致失败 ,不要害怕,百度一下,把rudy 升级一下就好了。
第六步redis集权搭建完成
到此我们的集群就搭建完成了,我们 随意连接 上面六个 reidis 节点的地址,都能够 连接到这个集群。