• 手摸手Redis7配置哨兵模式(一主二从三哨兵)


    安装redis

    1. #安装gcc
    2. yum -y install gcc gcc-c++
    3. #安装net-tools
    4. yum -y install net-tools
    1. #官网https://redis.io/
    2. cd /opt/
    3. wget http://download.redis.io/releases/redis-7.0.4.tar.gz
    4. 解压至/opt/目录下
    5. tar -zxvf redis-7.0.4.tar.gz -C /opt/

    1. #编译安装
    2. make
    3. make install

    1. INSTALL redis-server
    2. INSTALL redis-benchmark
    3. INSTALL redis-cli

    1. //启动redis
    2. redis-server 或 nohup redis-server &
    3. //配置后台启动
    4. redis-server /opt/redis/redis.conf
    5. //停止redis
    6. redis-cli shutdown
    7. #daemonize配置该为yes
    8. vim redis.conf

    1. #配置redis开机自启
    2. vim /etc/systemd/system/redis.service
    3. [Unit]
    4. Description=redis-server
    5. After=network.target
    6. [Service]
    7. Type=forking
    8. ExecStart=/opt/redis/src/redis-server /opt/redis/redis.conf
    9. PrivateTmp=true
    10. [Install]
    11. WantedBy=multi-user.target
    12. //重载系统服务
    13. systemctl daemon-reload
    14. systemctl start redis
    15. systemctl status redis
    16. systemctl restart redis
    17. //开机自启
    18. systemctl enable redis

    1. #修改配置密码(根据个人需求修改密码)
    2. find / -name redis.conf
    3. vim redis.conf

    1. #创建 redis 命令软链接
    2. find / -name redis-cli
    3. ln -s /usr/local/bin/redis-cli /usr/bin/redis
    4. redis
    5. //登录redis
    6. redis-cli
    7. auth 密码
    8. redis-cli -h 127.0.0.1 -p 6379
    9. redis-cli -h 127.0.0.1 -p 6379 -a 密码
    10. redis-cli -a 密码

    1. #查看所有6379端口使用情况
    2. netstat -ntulp |grep 6379
    3. netstat -ntulp |grep redis

    连接配置

    vim /opt/redis/redis.conf

    注释 bind

    #注释 
    #bind 127.0.0.1 -::1  //bind 127.0.0.1 -::1表示只本机使用 ,注释后表示任意连接

    关闭保护模式(自己访问自己)

    命令重命名

    flushall与flushdb根据项目情况使用

    flushall删除所有

    flushdb删除当前数据库

    rename-command flushall "" #表示flushall不能使用 
    rename-command flushdb ""

    Redis客户端

    命令行客户端

    1. redis-cli -h 127.0.0.1 -p 6379
    2. redis-cli -h 127.0.0.1 -p 6379 -a 密码

    图形化桌面客户端

    8.8版本后商业化收费

    RedisDesktopManager

    官网:https://resp.app/

    GitHub - RedisInsight/RedisDesktopManager

    链接:https://pan.baidu.com/s/1y3cdOqS1E2UIGW22nr9zNQ?pwd=QGS1 
    提取码:QGS1

    RedisPlus

    RedisPlus: RedisPlus是为Redis可视化管理开发的一款开源免费的桌面客户端软件,支持Windows 、Linux 、Mac三大系统平台,RedisPlus提供更加高效、方便、快捷的使用体验,有着更加现代化的用户界面风格。

    RedisDesktopManager-Windows

    Releases · lework/RedisDesktopManager-Windows · GitHub

    Redis主从集群搭建

    Redis的主从集群是一个“一主多从”的读写分离集群。集群中的 Master节点负责处理客户端的读写请求,而 Slave节点仅能处理客户端的读请求。只所以要将集群搭建为读写分离模式,主要原因是,对于数据库集群,写操作压力一般都较小,压力大多数来自于读操作请求。所以,只有一个节点负责处理写操作请求即可。

    要搭建主从集群,且每个主机都有可能会是 Master,所以最好不要设置密码验证属性 requirepass如果真需要设置,一定要每个主机的密码都设置为相同的。此时每配置文件中都要设置两个完全相同的属性: requirepass与 masterauth。其中 requirepass用于指定当前主机的访问密码,而 masterauth用于指定当前save访问 master时向 master提交的访问密码,用于让 master验证自己身份是否合法

    repl-disable-tcp-nodelay no         

    该属性用于设置是否禁用TCP特性tcp-nodelay。设置为yes则禁用tcp- nodelay,此时master与 slave间的通信会产生延迟,但使用的TCP包数量会较少,占用的网络带宽会较小相反,如果设置为no,则网络延迟会变小,但使用的TCP包数量会较多,相应占用的网络带宽会大

    tcp-nodelay:为了充分复用网络带宽,TCP总是希望发送尽可能大的数据块。

    1. 主从的redis.conf配置是一样的
    2. 从机多了一个 slaveof 主机ip 端口
    3. 或者进入redis配置
    4. 两台从机
    5. #从主机向master发送slaveof IP port 表示作为他的从机
    6. slaveof 127.0.0.1 6379

    info replication

    slaveof 127.0.0.1 6379

    从主机向master发送slaveof IP port  表示作为他的从机

    info replication

    哨兵模式

    哨兵是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master

    每台redis都启动一个哨兵,或者一台虚拟机启动三台哨兵需分配不同端口

    新建哨兵空间路径文件

    Mkdir -p/opt/sentinel/data

    Master

    过滤sentinel.conf文件

    cat sentinel.conf | grep -v "#" | grep -v "^$"

    将过滤的sentinel.conf文件信息新建并加入新文件

    cat sentinel.conf | grep -v "#" | grep -v "^$" > /opt/sentinel/sentinel.conf

    1. #sentinel.conf配置文件说明
    2. #哨兵默认端口
    3. port 26379
    4. daemonize no
    5. pidfile "/var/run/redis-sentinel.pid"
    6. logfile "/opt/sentinel/6381.log"
    7. dir "/opt/sentinel/data"
    8. # 2表示配置哨兵,有2个哨兵作出同样的决策,才有决策权
    9. sentinel monitor mymaster 127.0.0.1 6381 2
    10. # master被sentinel认定为失效的间隔时间
    11. sentinel down-after-millisebcodes mymaster 30000
    12. # 剩余的slaves重新和新的master做同步的并行个数
    13. sentinel parallel-syncs mymaster 1
    14. # 主备切换的超时时间,哨兵要去做故障转移,这个时候哨兵也是一个进程,如果他没有去执行,超过这个时间后,会由其他的哨兵来处理
    15. sentinel failover-timeout mymaster 180000
    1. #配置文件
    2. port 26379
    3. daemonize no
    4. pidfile "/var/run/redis-sentinel.pid"
    5. logfile "/opt/sentinel/6380.log"
    6. dir "/opt/sentinel/data"
    7. sentinel monitor mymaster 116.205.131.136 6380 2
    8. sentinel down-after-milliseconds mymaster 30000
    9. sentinel parallel-syncs mymaster 1
    10. sentinel failover-timeout mymaster 180000
    11. bind 0.0.0.0
    12. #启动
    13. redis-sentinel /opt/sentinel/sentinel.conf
    14. ps -ef | grep redis

    转移成功后的sentinel.conf文件

    Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

    Redis是一个NoSQL数据库,常用缓存(cache)

    Redis数据类型:string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)

    Redis是一个中间件

    同步数据(实时性同步数据、阶段性同步数据)

  • 相关阅读:
    【LeetCode+JavaGuide打卡】Day22|235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
    案例一 xpath之官网新闻
    【题解】金牌导航-高斯消元/Luogu P3232 游走
    致敬最美抗击疫情的逆行者 DIV布局大学生抗疫感动专题网页设计作业模板 疫情感动人物静态HTML网页模板下载
    漏洞分析丨HEVD-0x6.UninitializedStackVariable[win7x86]
    docker搭建owncloud
    8、Shell函数
    代码随想录算法训练营第23期day2 | 977.有序数组的平方 、209.长度最小的子数组、59.螺旋矩阵II
    报405和403错误
    webpack处理样式资源04--webpack入门学习
  • 原文地址:https://blog.csdn.net/weixin_47268883/article/details/133848204