http://www.redis.cn/documentation.html #中文官方文档
yum -y install gcc automake autoconf libtool make
wget https://download.redis.io/releases/redis-5.0.10.tar.gz
tar -zxvf redis-5.0.10.tar.gz
cd redis-5.0.10/
mkdir -p /home/redis-cluster/redis
make && make PREFIX=/home/redis-cluster/redis install
cd src
cp redis-trib.rb /home/redis-cluster/redis/bin
mkdir -p /home/redis-cluster/9001/data
cd ..
cp redis.conf /home/redis-cluster/9001/9001.conf
cd /home/redis-cluster/9001
vim 9001.conf
protected-mode no
#bind 172.18.107.30 #填写本机的ip这里注释本机的ip
port 9001
daemonize yes
pidfile /var/run/redis_9001.pid
dir /home/redis-cluster/9001/data
appendonly yes
cluster-enabled yes
cluster-config-file nodes-9001.conf
cluster-node-timeout 15000
cp -rf /home/redis-cluster/9001 /home/redis-cluster/9002
cp -rf /home/redis-cluster/9001 /home/redis-cluster/9003
cp -rf /home/redis-cluster/9001 /home/redis-cluster/9004
cp -rf /home/redis-cluster/9001 /home/redis-cluster/9005
cp -rf /home/redis-cluster/9001 /home/redis-cluster/9006
mv /home/redis-cluster/9002/9001.conf /home/redis-cluster/9002/9002.conf
mv /home/redis-cluster/9003/9001.conf /home/redis-cluster/9003/9003.conf
mv /home/redis-cluster/9004/9001.conf /home/redis-cluster/9004/9004.conf
mv /home/redis-cluster/9005/9001.conf /home/redis-cluster/9005/9005.conf
mv /home/redis-cluster/9006/9001.conf /home/redis-cluster/9006/9006.conf
sed -i 's/9001/9002/g' 9002/9002.conf
sed -i 's/9001/9003/g' 9003/9003.conf
sed -i 's/9001/9004/g' 9004/9004.conf
sed -i 's/9001/9005/g' 9005/9005.conf
sed -i 's/9001/9006/g' 9006/9006.conf
/home/redis-cluster/redis/bin/redis-server /home/redis-cluster/9001/9001.conf
/home/redis-cluster/redis/bin/redis-server /home/redis-cluster/9002/9002.conf
/home/redis-cluster/redis/bin/redis-server /home/redis-cluster/9003/9003.conf
/home/redis-cluster/redis/bin/redis-server /home/redis-cluster/9004/9004.conf
/home/redis-cluster/redis/bin/redis-server /home/redis-cluster/9005/9005.conf
/home/redis-cluster/redis/bin/redis-server /home/redis-cluster/9006/9006.conf
创建集群
原命令 redis-trib.rb 这个工具目前已经废弃,使用redis-cli
#使用create命令 --replicas 1 参数表示为每个主节点创建一个从节点,其他参数是实例的地址集合。其中,前三个 ip:port 为第一台机器的节点,剩下三个为第二台机器.
/home/redis-cluster/redis/bin/redis-cli --cluster help
/home/redis-cluster/redis/bin/redis-cli --cluster create --cluster-replicas 1 172.18.107.29:9001 172.18.107.29:9002 172.18.107.29:9003 172.18.107.30:9004 172.18.107.30:9005 172.18.107.30:9006 #只能阿里同一个内网使用
/home/redis-cluster/redis/bin/redis-cli --cluster create --cluster-replicas 1 8.135.49.60:9001 8.135.49.60:9002 8.135.50.156:9003 8.135.50.156:9004 8.135.48.44:9005 8.135.48.44:9006 #任何外网都可以进入集群
/home/redis-cluster/redis/bin/redis-cli -h 172.18.107.30 -c -p 9004
cluster info #打印集群信息
cluster nodes #列出集群节点
./redis-cli -h 172.18.107.31 -p 9001 cluster nodes | grep master #列出集群中的所有主节点
./redis-cli -h 172.18.107.31 -p 9001 cluster nodes | grep slave #列出集群中的所有从节点
重置 Redis 群集节点,根据复位类型,或多或少有些激烈,可能很难或很软。请注意,如果主设备拥有一个或多个密钥,则此命令不起作用,在这种情况下,要完全重置主节点密钥,必须首先移除密钥,例如先使用 FLUSHALL,然后使用 CLUSTER RESET。
./redis-cli -h 172.18.107.33 -c -p 9006 FLUSHALL #每个节点端口都要执行一次清空节点
./redis-cli -h 172.18.107.33 -c -p 9006 CLUSTER RESET #集群复位,重建集群用,每个节点清空一次,就可以重建集群了
扩容
/home/redis-cluster/redis/bin/redis-server /home/redis-cluster/9007/9007.conf
/home/redis-cluster/redis/bin/redis-server /home/redis-cluster/9008/9008.conf
/home/redis-cluster/redis/bin/redis-cli --cluster add-node 172.18.107.29:9007 172.18.107.29:9002 #add-node新节点9007的ip加端口,取集群任意ip和端口,默认为主节点
/home/redis-cluster/redis/bin/redis-cli --cluster add-node 172.18.107.29:9008 172.18.107.29:9002 --cluster-slave --cluster-master-id a62e0a79b9528038c870547f6da93f3d2296deca #从节点9008ip加端口,--cluster-slave指定从节点,--cluster-master-id指定主节点
/home/redis-cluster/redis/bin/redis-cli --cluster rebalance 172.18.107.29:9002
pkill -9 redis #关闭redis
备注配置密码访问
bind redis-02
# 设置端口,区分集群中Redis的实例
port 7001
# 后台运行
daemonize yes
# pid进程文件名,以端口号命名
pidfile "/var/run/redis-7001.pid"
# 日志文件名称,以端口号为目录来区分
logfile "/data/redis/redis_cluster/7001/logs/redis.log"
# 数据文件存放地址,以端口号为目录名来区分
dir "/data/redis/redis_cluster/7001/data"
# 启用集群
cluster-enabled yes
# 配置每个节点的配置文件,同样以端口号为名称
cluster-config-file "nodes_7001.conf"
# 配置集群节点的超时时间
cluster-node-timeout 15000
# 启动AOF增量持久化策略
appendonly yes
# 发生改变,则记录日志
appendfsync always
#设置密码
requirepass "123456"
masterauth "123456"
集群设置了密码创建集群时也要加上密码 -a '123456'
./redis-cli --cluster create --cluster-replicas 1 10.100.10.190:6379 10.100.10.190:6380 10.100.10.190:6381 10.100.10.190:6382 10.100.10.190:6383 10.100.10.190:6384 -a '123456'
/home/redis-cluster/redis/bin/redis-cli -h 172.18.107.30 -c -p 9004 -a '123456'
阿里云redis账号redis登陆方式,以及查看那些服务连接了redis
redis-cli -h r-wz9jhynpkdi3fxn4u3.redis.rds.aliyuncs.com -a redis:'q#VDj9n3!E2&'
client list