4、Redis-Cluster集群模式安装(Linux伪集群)

本文档详细介绍了在Linux环境下安装Redis-Cluster伪集群的步骤,包括上传与解压Redis源码、配置与启动Redis服务、开放防火墙端口、创建及管理集群,并提供了启动与关闭脚本,以及在集群中插入数据的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 准备
    centos7
    xshell
    redis-5.0.6.tar.gz

  2. 通过xshell上传redis-5.0.6.tar.gz到/usr/local/

  3. 解压tar -xzvf redis-5.0.6.tar.gz

  4. 改名mv redis-5.0.6 redis-cluster

  5. 进入解压后的目录进行编译
    cd redis-cluster/
    make
    make install

  6. 防火墙放开6379、6380、6381、6382、6383、6384端口
    如果提示FirewallD is not running,那么按照上面操作启动firewalld.service
    启动一个服务:systemctl start firewalld.service
    关闭一个服务:systemctl stop firewalld.service
    重启一个服务:systemctl restart firewalld.service
    显示一个服务的状态: systemctl status firewalld.service
    在开机时启用一个服务:systemctl enable firewalld.service
    在开机时禁用一个服务:systemctl disable firewalld.service
    查看服务是否开机启动:systemctl is-enabled firewalld.service

    firewall-cmd --zone=public --add-port=6379/tcp --permanent
    firewall-cmd --zone=public --add-port=6380/tcp --permanent
    firewall-cmd --zone=public --add-port=6381/tcp --permanent
    firewall-cmd --zone=public --add-port=6382/tcp --permanent
    firewall-cmd --zone=public --add-port=6383/tcp --permanent
    firewall-cmd --zone=public --add-port=6384/tcp --permanent
    firewall-cmd --reload

    firewall-cmd --zone=public --list-ports # 查看放开的端口列表

  7. 配置redis—[注意目录和文件的读写权限,chmod 666]
    /etc/redis-cluster 存放redis的配置文件
    cd /etc/
    mkdir redis-cluster
    cd /usr/local/redis-cluster/
    cp redis.conf /etc/redis-cluster/redis_6379.conf

    /var/redis-cluster 存放redis的持久化文件、日志文件
    cd /var/
    mkdir redis-cluster
    cd redis-cluster
    mkdir nodes

  8. 修改配置文件
    cd /etc/redis-cluster/
    vim redis_6379.conf

    修改项:

bind 192.168.78.169		#  具体ip,客户端才能远程访问
protected-mode no			#  yes只能通过本地localhost访问,no可以通过ip远程访问
port 6379					#  端口
requirepass 123456		   	#  密码,masre、slave必须设置成一样
daemonize yes			#  yes后台守护进程运行
logfile redis_log_6379.log	#  日志文件
pidfile /var/run/redis-cluster/redis_6379.pid		#  pid保存文件
dir /var/redis-cluster					#  持久化文件存放位置
dbfilename dump_6379.rdb		#  rdb快照持久化文件
save “”						#  禁止rdb持久化
appendonly no						#  禁止aof持久化
appendfsync everysec				#  aof持久频率
appendfilename "appendonly_6379.aof"	#  aof持久化文件
maxmemory 512m						#  最大内存
maxmemory-policy volatile-ttl				#  当前内存超过maxmemory时淘汰策略
masterauth 123456						#  master变成新master的slave时所需密码
cluster-enabled yes						#  开启redis-cluster集群
cluster-config-file nodes/nodes_6379.conf	#  redis-cluster集群中每个节点的配置文件,只能由									redis写,不能手动修改
cluster-node-timeout 15000				#  redis-cluster集群每个节点互相ping的超时时间

另外复制5份:
cp redis_6379.conf redis_6380.conf
cp redis_6379.conf redis_6381.conf
cp redis_6379.conf redis_6382.conf
cp redis_6379.conf redis_6383.conf
cp redis_6379.conf redis_6384.conf

vim redis_6380.conf
修改6379为6380

vim redis_6381.conf
修改6379为6381
依次类推

  1. 启动redis
    cd /usr/local/redis-cluster/src/
    ./redis-server /etc/redis-cluster/redis_6379.conf
    ./redis-server /etc/redis-cluster/redis_6380.conf
    ./redis-server /etc/redis-cluster/redis_6381.conf
    ./redis-server /etc/redis-cluster/redis_6382.conf
    ./redis-server /etc/redis-cluster/redis_6383.conf
    ./redis-server /etc/redis-cluster/redis_6384.conf

    关闭redis (也可以使用ps -ef | grep redis和kill 进程id、killall 进程名称)
    cd /usr/local/redis-cluster/src/
    ./redis-cli -h 192.168.78.169 -p 6379 -a 123456 shutdown
    ./redis-cli -h 192.168.78.169 -p 6380 -a 123456 shutdown
    ./redis-cli -h 192.168.78.169 -p 6381 -a 123456 shutdown

    启动、关闭脚本(脚本内容把上面命令copy一遍就可以了)
    /root/redis-cluster/redis_start_6379.sh
    /root/redis-cluster/redis_start_6380.sh
    /root/redis-cluster/redis_start_6381.sh

    /root/redis-cluster/redis_stop_6379.sh
    /root/redis-cluster/redis_stop_6380.sh
    /root/redis-cluster/redis_stop_6381.sh

    执行.sh脚本
    ./redis_start_6379.sh
    ./redis_start_6380.sh
    ./redis_start_6381.sh

    ./redis_stop_6379.sh
    ./redis_stop_6380.sh
    ./redis_stop_6381.sh
    注意:如果使用tab键无法自动填充时,考虑当前用户对.sh脚本无执行权限,
    查看权限:ls -l,修改权限:chmod 744 redis*(支持通配符*)

  2. 创建集群
    ./redis-cli --cluster create 192.168.78.169:6379 192.168.78.169:6380 192.168.78.169:6381 192.168.78.169:6382 192.168.78.169:6383 192.168.78.169:6384 --cluster-replicas 1
    此时创建了3主3从集群,主从关系使用cluster nodes命令查看
    –cluster-replicas 1:表示集群主节点的备份数,主从模式

    注意:redis5之前版本是用redis-trib.rb
    在这里插入图片描述

    连接任一redis节点查看集群状态:
    cd /usr/local/redis-cluster/src/
    ./redis-cli -h 192.168.78.169 -p 6379 -a 123456
    在这里插入图片描述

    使用redis-cli 插入数据时需要注意,如果key计算的槽不在当前redis实例下会报错!
    注意:主节点可以进行读写操作,从节点只能进行读操作!
    在这里插入图片描述

    当一个主节点6379节点挂掉时,会自动切换到从节点6384上
    在这里插入图片描述
    当6379重启后会变成6384的从节点!
    在这里插入图片描述

    扩展:
    1、redis-cluster介绍:http://www.redis.cn/topics/cluster-tutorial.html
    2、官方推荐最大的redis master节点数量为1000,哈希槽数量16384
    为什么是16384?
    原因是因为需要把所有的槽放到心跳包里面便于让节点知道当前的全部信息。16348=16k,用bitmap来压缩心跳包的话,就相当于使用2810=2KB大小的心跳包。而如果用crc16算法(redis使用这个而不是用哈希一致性算法)来确定哈希槽的分配。他的最大值是是2的16次方。用上面的算法换算需要8KB的心跳包来传输,作者自己认为这样不划算。而一个redis节点一般不会有超过1000个master(这个是作者自己说的),用16k来划分是比较合适的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值