最近尝试搭建了一下redis集群,这里记录一下,最后附上的是参考的博客地址。
-
安装C语言编译环境GCC
yum install -y gcc-c++ -
下载redis并编译安装 #下载:
wget https://download.redis.io/releases/redis-5.0.4.tar.gz#解压到指定目录:
tar -zxf redis-5.0.4.tar.gz -C /opt/tools#编译源码:
cd /opt/tools/redis-5.0.4 make#安装并通过 PREFIX 指定安装目录
make install PREFIX=/opt/tools/redis#修改配置
- 拷贝redis-5.0.4/redis.conf配置文件到redis安装目录的bin目录
cp redis.conf /opt/tools/redis/bin- 进入/opt/tools/redis/bin目录,修改redis.conf文件
vim redis.conf- redis.conf文件示例\
#绑定ip,若需要外网访问,需指定固定ip bind 127.0.0.1 #端口,默认6379,集群时每个配置都需要不同 port 7001 # Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 # 启用守护进程后,Redis会把pid写到一个pidfile中,在/var/run/redis.pid daemonize yes #当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定,集群时加上端口号 pidfile /var/run/redis_7001.pid #指定日志文件,目录自己指定,集群时文件名带端口号 logfile "/var/log/redis/logs/redis_7001.log" #开启AOF模式 appendonly yes #开实例的集群模式 cluster-enabled yes #集群配置文件,带端口号 cluster-config-file nodes-7001.conf #节点能够失联的最大时间 cluster-node-timeout 15000 -
创建6个redis实例(6个节点)
-
在usr/local目录下新建redis-cluster目录,用于存放集群节点
-
把redis目录下的bin目录下的所有文件复制到/usr/local/redis-cluster/redis01目录下,不用担心这里没有redis01目录,会自动创建的。操作命令如下(注意当前所在路径):
cp -r redis/bin/ redis-cluster/redis01 -
将redis-cluster/redis01文件复制5份到redis-cluster目录下(redis02-redis06),创建6个redis实例,模拟Redis集群的6个节点。然后将其余5个文件下的redis.conf里面的端口号分别修改为7002-7006,带端口的参数也需要一起修改(pidfile、logfile、cluster-config-file)。
-
-
创建执行脚本
- start-all.sh (启动redis实例)
cd redis01 rm -rf dump.rdb nodes.conf nodes-7001.conf ./redis-server redis.conf cd .. cd redis02 rm -rf dump.rdb nodes.conf nodes-7002.conf ./redis-server redis.conf cd .. cd redis03 rm -rf dump.rdb nodes.conf nodes-7003.conf ./redis-server redis.conf cd .. cd redis04 rm -rf dump.rdb nodes.conf nodes-7004.conf ./redis-server redis.conf cd .. cd redis05 rm -rf dump.rdb nodes.conf nodes-7005.conf ./redis-server redis.conf cd .. cd redis06 rm -rf dump.rdb nodes.conf nodes-7006.conf ./redis-server redis.conf cd ..- create-cluster.sh (创建集群,根据需要将127.0.0.1换成对应ip)
cd redis01/ #--cluster-yes :设定交互式的时候自动回复yes。若不加,执行完此命令后,需要手动输入yes,加上此参数,可以用于设置开机启动 ./redis-cli --cluster create 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 --cluster-replicas 1 --cluster-yes cd ../- shutdown.sh (停止redis实例,根据需要将127.0.0.1换成对应ip)
: << COMMENTBLOCK SHUTDOWN 命令执行以下操作: 停止所有客户端 如果有至少一个保存点在等待,执行 SAVE 命令 如果 AOF 选项被打开,更新 AOF 文件 关闭 redis 服务器(server) 如果持久化被打开的话, SHUTDOWN 命令会保证服务器正常关闭而不丢失任何数据。 SHUTDOWN SAVE: 会强制让数据库执行保存操作,即使没有设定(configure)保存点. SHUTDOWN NOSAVE: 会阻止数据库执行保存操作,即使已经设定有一个或多个保存点(你可以将这一用法看作是强制停止服务器的一个假想的 ABORT 命令). COMMENTBLOCK cd redis01 echo "Stopping 7001" ./redis-cli -h 127.0.0.1 -p 7001 shutdown save echo "Stopping 7002" ./redis-cli -h 127.0.0.1 -p 7002 shutdown save echo "Stopping 7003" ./redis-cli -h 127.0.0.1 -p 7003 shutdown save echo "Stopping 7004" ./redis-cli -h 127.0.0.1 -p 7004 shutdown save echo "Stopping 7005" ./redis-cli -h 127.0.0.1 -p 7005 shutdown save echo "Stopping 7006" ./redis-cli -h 127.0.0.1 -p 7006 shutdown save cd .. -
另外提供一种快速搭建方式(通过命令的形式传入参数,redis.conf文件实际未更新):
- 编辑/utils/create-cluster/create-cluster 文件,更改起始/结束端口,指定ip等(不指定默认127.0.0.1)。
- 使用“./create-cluster start”运行实例。
- 使用“./create-cluster create”创建一个Redis集群。
- 使用“./create-cluster stop”停止所有实例
-
参考文档:
集群搭建:(redis5.0版本之后可以直接使用 redis-cli 命令创建集群,不使用 redis-trib.rb 命令了) blog.csdn.net/qq_42815754… blog.51cto.com/34144451/37…
快速搭建方式:
blog.csdn.net/qq_39308071…集群参数: (1条消息) Redis——cluster集群_FlyLikeButterfly的博客-CSDN博客_rediscluster集群