1、下载
cd /usr/local
wget http://download.redis.io/releases/redis-3.2.3.tar.gz
2、解压安装
tar -zxvf redis-3.2.3.tar.gz
cd redis-3.2.3
安装需要gcc、tcl
yum install gcc
yum install tcl
安装
make MALLOC=libc
make install
3. 修改配置文件redis.conf
新建目录 mkdir /usr/local/redisCluster
cd /usr/local/redisCluster
在redisCluster 下新建目录
mkdir 7000
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005
复制文件到7000
cp -r /usr/local/redis-3.2.3/* /usr/local/redisCluster/7000
修改redis.conf
vim /usr/local/redisCluster/7000/redis.conf
##修改配置文件中的下面选项
port 7000
bind ip
pidfile /var/run/redis_7000.pid
logfile /var/log/redis_7000
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
注意:
port 端口
bind 默认本机IP或127.0.0.1 (内网IP,类型绑定网卡,指接收从哪里进来的请求。非指外部请求IP)
daemonize 是否作为守护线程运行,yes = 后台运行
cluster-enabled 是否开启集群
cluster-node-timeout 超时时间
appendonly 开启写入日志操作。每次写操作都会有一条日志
其他查询redis配置详解,这里就不详细记录了。
4、复制7000到其他节点上,并各自修改redis.conf 文件
cp -r /usr/local/data/redisCluster/7000/* /usr/local/data/redisCluster/7001
cp -r /usr/local/data/redisCluster/7000/* /usr/local/data/redisCluster/7002
cp -r /usr/local/data/redisCluster/7000/* /usr/local/data/redisCluster/7003
cp -r /usr/local/data/redisCluster/7000/* /usr/local/data/redisCluster/7004
cp -r /usr/local/data/redisCluster/7000/* /usr/local/data/redisCluster/7005
修改每个节点上的redis.conf文件的以下内容 对应各自的端口
port
pidfile
logfile
bind ip
然后启动每一个节点
cd /usr/local/redisCluster/7000/
redis-server redis.conf
cd /usr/local/redisCluster/7001/
redis-server redis.conf
cd /usr/local/redisCluster/7002/
redis-server redis.conf
ps -aux | grep redis 查看redis 节点启动情况
5、创建集群
Redis 官方提供了 redis-trib.rb 这个工具,就在解压目录的 src 目录中,这个工具是用 ruby 实现的,所以需要安装 ruby
yum -y
install
ruby ruby-devel rubygems rpm-build
gem
install
redis
执行 Redis 集群创建命令(只需要在其中一个节点上执行一次则可)
cd /usr/local/redisCluster/7000/src/
./redis-trib.rb create --replicas 1 115.29.168.55:7000 115.29.168.55:7001 115.29.168.55:7002 115.29.168.55:7003 115.29.168.55:7004 115.29.168.55:7005
注意:
1.这里的IP如果是内网IP,服务也需要在这个内网。否则访问不到,也可以设置外网IP。
2.--replicas 则指定了为Redis Cluster中的每个Master节点配备几个Slave节点
节点角色由顺序决定,先master之后是slave
如果是多台服务器的redis集群,需要将多台服务器master全部写在前面,后面跟着全部slave节点
运行上面的创建集群命令,会出现询问,输入yes
出现上面的内容说明 集群创建成功
redis-cli命令进入集群环境
cd /usr/local/redisCluster/7000/src/
redis-cli -c -h 115.29.168.55 -p 7000(需要指定访问ip和端口)
尝试set key 和get key
查看cluster nodes
6、设置开机启动
vim /etc/init.d/redis
输入以下脚本内容:
############### redis 服务开始#################
case "$1" in
start)
cd /usr/local/redisCluster/7000/src/
./redis-server ../redis.conf
echo "7000 Start ..."
cd /usr/local/redisCluster/7001/src/
./redis-server ../redis.conf
echo "7001 Start ..."
cd /usr/local/redisCluster/7002/src/
./redis-server ../redis.conf
echo "7002 Start ..."
cd /usr/local/redisCluster/7003/src/
./redis-server ../redis.conf
echo "7003 Start ..."
cd /usr/local/redisCluster/7004/src/
./redis-server ../redis.conf
echo "7004 Start ..."
cd /usr/local/redisCluster/7005/src/
./redis-server ../redis.conf
echo "7005 Start ..."
;;
stop)
cd /usr/local/redisCluster/7000/src/
./redis-cli -h 112.74.53.234 -p 7000 shutdown
echo "Waiting for Redis 7000 to shutdown ..."
./redis-cli -h 112.74.53.234 -p 7001 shutdown
echo "Waiting for Redis 7001 to shutdown ..."
./redis-cli -h 112.74.53.234 -p 7002 shutdown
echo "Waiting for Redis 7002 to shutdown ..."
./redis-cli -h 112.74.53.234 -p 7003 shutdown
echo "Waiting for Redis 7003 to shutdown ..."
./redis-cli -h 112.74.53.234 -p 7004 shutdown
echo "Waiting for Redis 7004 to shutdown ..."
./redis-cli -h 112.74.53.234 -p 7005 shutdown
echo "Waiting for Redis 7005 to shutdown ..."
;;
restart)
cd /usr/local/redisCluster/7000/src/
./redis-cli -h 112.74.53.234 -p 7000 shutdown
./redis-cli -h 112.74.53.234 -p 7001 shutdown
./redis-cli -h 112.74.53.234 -p 7002 shutdown
./redis-cli -h 112.74.53.234 -p 7003 shutdown
./redis-cli -h 112.74.53.234 -p 7004 shutdown
./redis-cli -h 112.74.53.234 -p 7005 shutdown
cd /usr/local/redisCluster/7000/src/
./redis-server ../redis.conf
echo "7000 Start ..."
cd /usr/local/redisCluster/7001/src/
./redis-server ../redis.conf
echo "7001 Start ..."
cd /usr/local/redisCluster/7002/src/
./redis-server ../redis.conf
echo "7002 Start ..."
cd /usr/local/redisCluster/7003/src/
./redis-server ../redis.conf
echo "7003 Start ..."
cd /usr/local/redisCluster/7004/src/
./redis-server ../redis.conf
echo "7004 Start ..."
cd /usr/local/redisCluster/7005/src/
./redis-server ../redis.conf
echo "7005 Start ..."
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart}" >&2
exit 1
esac
############### redis 服务结束#################
赋予权限chmod +x /etc/init.d/ redis
配置成服务
vi /usr/lib/systemd/system/redis.service
输入内容
[Unit]
Description=redis
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/redis start
ExecReload=/etc/init.d/redis restart
ExecStop=/etc/init.d/redis stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
设置该服务开机启动
systemctl enable redisd.service
service redis start 启动
service redis stop 停止
service redis restart 重新启动
redis重建集群
1、关闭cluster全部节点
2、删除所有nodes.conf文件
3、开启全部节点 redis-cli -c -h 112.74.53.234 -p 7000
4、依次 FLUSHALL CLUSTER RESET SOFT
5、重建集群即可