Redis安装,主从,哨兵及集群模式一文可解决

1 篇文章 0 订阅
1 篇文章 0 订阅
Redis安装,主从,哨兵,集群说明
安装依赖
yum install gcc-c++ -y
下载源码
cd /usr/local
wget http://download.redis.io/releases/redis-5.0.8.tar.gz
编译安装
cd /usr/local
mv redis-5.0.8 redis
cd redis
mkdir data
make
修改配置文件
vim /usr/local/redis/redis.conf

#修改为 daemonize yes;守护进程,后台运行,除非手动kill进程
daemonize yes
#注释掉,否则无法远程连接redis服务
bind 0.0.0.0   #监听ip,多个ip用空格分隔
#设置密码
#masterauth 123456               #slave连接master密码,master可省略
requirepass 123456              #设置master连接密码,slave可省略
#指定Redis最大内存限制
maxmemory 4GB
 #日志路径
logfile "/usr/local/redis/redis.log"         
 #数据库备份文件存放目录
dir /usr/local/redis/data                

appendonly yes                  

启动redis
./bin/redis-server ./redis.conf

主从复制

  1. 手动修改配置文件
redis 5.0前:
slaveof 192.168.75.129 6379
redis 5.0后: 
replicaof 192.168.75.129 6379  
masterauth "sdmc@1234"

哨兵(sentinel)功能-----一主两从三哨兵

redis的sentinel系统用于管理多个redis服务器,该系统主要执行三个任务:监控、提醒、自动故障转移。

  1. 修改sentinel.conf文件
# vim /usr/local/redis/sentinel.conf
daemonize yes
logfile "/usr/local/redis/sentinel.log"
dir "/usr/local/redis/sentinel"                 #sentinel工作目录
sentinel monitor mymaster 192.168.75.129 6379 2                 #判断master失效至少需要2个sentinel同意,建议设置为n/2+1,n为sentinel个数
#最后一个参数为需要判定客观下线所需的主观下线sentinel个数,这个参数不可以大于sentinel个数
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000                 #判断master主观下线时间,默认30s

  1. 启动sentinel
redis-sentinel sentinel.conf

redis集群

redis集群是一个无中心的分布式Redis存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用、可扩展等问题,一个Redis集群包含16384个哈希槽,数据库中的每个数据都属于16384个哈希槽中的一个,集群使用公式CRC16(key)%16384来计算键key属于哪个槽,集群中的每一个节点负责处理一部分哈希槽。

  1. 修改配置文件redis.conf,其它类似:
# vim /usr/local/redis/cluster/redis_7002.conf
bind 192.168.30.128
port 7002
daemonize yes
pidfile "/var/run/redis_7002.pid"
logfile "/usr/local/redis/cluster/redis_7002.log"
dir "/data/redis/cluster/redis_7002"
#replicaof 192.168.30.129 6379
masterauth "123456"
requirepass "123456"
appendonly yes
cluster-enabled yes
cluster-config-file nodes_7002.conf
cluster-node-timeout 15000
  1. 安装集群工具
yum -y install ruby
  1. 复制redis-trib.rb到系统环境
cp /usr/local/redis/src/redis-trib.rb /usr/local/bin/redis-trib
  1. 启动集群三主三从
    redis-cli --cluster create --cluster-replicas 1 -a sdmc@1234 192.168.75.128:6379 192.168.75.128:6380 192.168.75.129:6379 192.168.75.129:6380 192.168.75.130:6379 192.168.75.130:6380

  2. 客户端访问redis集群

注意:-p 端口号 -h 节点ip -c 自动重定向
redis-cli -p 6379 -h 192.168.75.128 -c
  1. 查看集群信息
cluster info
  1. 查看节点信息
cluster nodes

redis自重启

  1. 在/etc/init.d下新建redis文件
#!/bin/sh
#添加的两行注释内容如下:
# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database
# 注释的意思是,redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10
##########################
PATH=/usr/local/bin:/sbin:/usr/bin:/bin

REDISPORT=6379
EXEC=/usr/local/soft/redis-6.2.6/src/redis-server
REDIS_CLI=/usr/local/soft/redis-6.2.6/src/redis-cli

PIDFILE=/var/run/redis_6379.pid
CONF="/etc/redis.conf"

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        if [ "$?"="0" ]
        then
              echo "Redis is running..."
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $REDIS_CLI -p $REDISPORT SHUTDOWN
                while [ -x ${PIDFILE} ]
               do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
   restart|force-reload)
        ${0} stop
        ${0} start
        ;;
  *)
    echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
        exit 1
esac
##############################

  1. 将新建redis文件授予执行权限
chmod +x /etc/init.d/redis
  1. 设定开机启动服务
sudo chkconfig redis on
  1. 检测是否成功
./redis start查询命令是否成功情况
reboot重启检测
重启后ps -ef |grep redis查看redis进程是否存在
  1. 添加自重启
chkconfig --add redis
  1. 查看自重启列表
chkconfig --list |grep redis
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如风之夏

感谢,你的鼓励是我前进的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值