目录
- 单机redis安装
- redis集群搭建
一、单机redis安装
# 切换到root用户
su root
# 进入到/usr/local/目录下
cd /usr/local
# 创建redis目录
mkdir -p redis
# 进入redis目录
cd redis
# 创建redis的安装目录
mkdir -p redis/redis-5.0.3
# 下载redis安装包
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
# 解压redis安装包
tar -zxvf redis-5.0.3.tar.gz
# 进入解压目录
cd redis-5.0.3
# 安装编译器gcc
yum -y install gcc
# 编译redis安装文件
make
# 将编译后redis安装到指定目录
make PREFIX=/usr/local/redis/redis/redis-5.0.3 install
# 进入redis安装目录
cd /usr/local/redis/redis/redis-5.0.3/bin/
# 将配置文件redis.conf拷贝到安装目录
cp /usr/local/redis/redis-5.0.3/redis.cong redis.conf
# 修改配置文件, 将daemonize no修改成daemonize yes,即允许redis后台启动
vi redis.conf
# 启动redis
./redis-server redis.conf
# 启动客户端
./redis-cli --raw -h 127.0.0.1 -p 6379
# 测试redis启动是否正常
set name "孙悟空"
get name
# 退出redis客户端
exit
# 关闭redis服务
./redis-cli -h 127.0.0.1 -p 6379 shutdown
二、redis集群搭建
# 进入redis安装目录
cd /usr/local/redis/redis/
# 创建redis-cluster集群安装目录
mkdir -p redis-cluster
# 进入redis-cluster
cd redis-cluster
# 创建redis集群实例安装目录
mkdir -p redis-7001 redis-7002 redis-7003 redis-7004 redis-7005 redis-7006
# 将/usr/local/redis/redis/redis-5.0.3/bin/dump.rdb文件删除, 然后将bin目录及
# 子文件拷贝到redis-7001 redis-7002 redis-7003 redis-7004 redis-7005 redis-7006
cp -r /usr/local/redis/redis/redis-5.0.3/bin/ /usr/local/redis/redis/redis-cluster/redis-7001
cp -r /usr/local/redis/redis/redis-5.0.3/bin/ /usr/local/redis/redis/redis-cluster/redis-7002
cp -r /usr/local/redis/redis/redis-5.0.3/bin/ /usr/local/redis/redis/redis-cluster/redis-7003
cp -r /usr/local/redis/redis/redis-5.0.3/bin/ /usr/local/redis/redis/redis-cluster/redis-7004
cp -r /usr/local/redis/redis/redis-5.0.3/bin/ /usr/local/redis/redis/redis-cluster/redis-7005
cp -r /usr/local/redis/redis/redis-5.0.3/bin/ /usr/local/redis/redis/redis-cluster/redis-7006
# 按照如下格式修改各个服务实例的配置文件
bind 192.168.217.130 # 绑定本机实际ip
port 7001 # 指定端口
pidfile /var/run/redis-7001.pid # 设置redis实例pid文件
daemonize yes # 后台启动redis服务实例
cluster-enabled yes # 启用集群模式
cluster-node-timeout 15000 # 设置当前节点连接超时毫秒数
cluster-config-file nodes-7001.conf # 设置当前节点集群配置文件路径
# 进入/usr/local/redis/redis/redis-cluster目录
cd /usr/local/redis/redis/redis-cluster
# 创建redis集群启动脚本redis-cluster-start.sh, 内容如下
cd /usr/local/redis/redis/redis-cluster/redis-7001/bin/
./redis-server redis.conf
cd /usr/local/redis/redis/redis-cluster/redis-7002/bin/
./redis-server redis.conf
cd /usr/local/redis/redis/redis-cluster/redis-7003/bin/
./redis-server redis.conf
cd /usr/local/redis/redis/redis-cluster/redis-7004/bin/
./redis-server redis.conf
cd /usr/local/redis/redis/redis-cluster/redis-7005/bin/
./redis-server redis.conf
cd /usr/local/redis/redis/redis-cluster/redis-7006/bin/
./redis-server redis.conf
# 执行启动脚本, 启动redis服务实例
./redis-cluster-start.sh
# 使用客户端连接任一个redis服务实例
./redis-7001/bin/redis-cli -h 192.168.217.130 -p 7001
# 让redis集群进行握手
cluster meet 192.168.217.130 7002
cluster meet 192.168.217.130 7003
cluster meet 192.168.217.130 7004
cluster meet 192.168.217.130 7005
cluster meet 192.168.217.130 7006
# 对7001, 7002, 7003进行分配槽位
./redis-7001/bin/redis-cli -h 192.168.217.130 -p 7001 cluster addslots {0..5461}
./redis-7001/bin/redis-cli -h 192.168.217.130 -p 7002 cluster addslots {5462..10922}
./redis-7001/bin/redis-cli -h 192.168.217.130 -p 7003 cluster addslots {10923..16383}
# 查看各个节点的node-id
./redis-7001/bin/redis-cli -h 192.168.217.130 -p 7001 cluster nodes
# 指定7004, 7005, 7006的主节点
./redis-7001/bin/redis-cli -h 192.168.217.130 -p 7004 cluster replicate 节点1的node-id
./redis-7001/bin/redis-cli -h 192.168.217.130 -p 7005 cluster replicate 节点2的node-id
./redis-7001/bin/redis-cli -h 192.168.217.130 -p 7006 cluster replicate 节点3的node-id
# 连接集群7001节点测试服务是否正常
./redis-7001/bin/redis-cli -h 192.168.217.130 -p 7001 -c
set name "孙悟空" # 存值
get name # 取值
# 退出redis客户端
exit
# 创建集群关闭脚本redis-cluster-stop.sh, 内容如下
cd /usr/local/redis/redis/redis-cluster/redis-7001/bin/
./redis-cli -h 192.168.217.130 -p 7001 shutdown
cd /usr/local/redis/redis/redis-cluster/redis-7002/bin/
./redis-cli -h 192.168.217.130 -p 7002 shutdown
cd /usr/local/redis/redis/redis-cluster/redis-7003/bin/
./redis-cli -h 192.168.217.130 -p 7003 shutdown
cd /usr/local/redis/redis/redis-cluster/redis-7004/bin/
./redis-cli -h 192.168.217.130 -p 7004 shutdown
cd /usr/local/redis/redis/redis-cluster/redis-7005/bin/
./redis-cli -h 192.168.217.130 -p 7005 shutdown
cd /usr/local/redis/redis/redis-cluster/redis-7006/bin/
./redis-cli -h 192.168.217.130 -p 7006 shutdown
# 执行关闭脚本, 关闭redis各个服务实例
./redis-cluster-stop.sh
在redis服务实例启动后, 也可以通过如下简洁的命令方式搭建, 如下
# --cluster-replicate 1表示每个master对应一个slave
./redis-cli --cluster create 192.168.217.130:7001 192.168.217.130:7002 192.168.217.130:7003 192.168.217.130:7004 192.168.217.130:7005 192.168.217.130:7006 --cluster-replicas 1