Redis高可用概述

1.安装

2.redis

  • 简介

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)、Hash(哈希类型的映射表)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

  • 为什么这么快?

纯内存操作

非阻塞IO

避免线程切换和竞态消耗

  • 如何使用?

拒绝长(慢)命令 keys、flushall。。

一次只运行一个命令

  • 数据结构

    • 字符串 缓存、计数器、分布式锁、分布式ID、、
    • HASH 存储用户信息、用户主页访问量
    • LIST 微博关注人微博时间轴列表
    • SET 赞、踩、标签
    • ZSET 排行榜
  • 分布式缓存

    • 主从复制
    • 高可用

3.主从、哨兵

  • 主从配置

    • 主机配置

    #演示方便,开放ip连接
    bind 0.0.0.0
    #后台运行
    daemonize yes
    #pid文件
    pidfile /var/run/redis_6379.pid
    dbfilename dump-6379.rdb
    #日志文件
    logfile "6379.log"

    • 从机配置

    bind 0.0.0.0
    port 6380
    daemonize yes
    pidfile /var/run/redis_6380.pid
    dbfilename dump-6380.rdb
    logfile "6380.log"
    #slaveof表示作为从库的配置
    slaveof 127.0.0.1 6379
    #从库只能读操作
    slave-read-only yes

    重点命令:

    slaveof 127.0.0.1 6379
    slave-read-only yes

  • 哨兵配置

    • sentinel.conf配置

      port 26379
      daemonize yes
      # sentinel announce-ip <ip>
      # sentinel announce-port <port>
      dir /opt/redis-4.0.11/data
      sentinel monitor mymaster 127.0.0.1  6379 2
      # sentinel auth-pass <master-name> <password>
      sentinel down-after-milliseconds mymaster 30000
      sentinel parallel-syncs mymaster 1
      sentinel failover-timeout mymaster 180000
      # sentinel notification-script <master-name> <script-path>
    • 故障转移过程

      1. 领导者选举
      2. 选出新的master节点
      3. 更改slave节点的master节点
      4. 通知客户端
      5. 客户端连接新的master节点

本文链接:

https://heyzen.club/index.php/Coder/254.html
1 + 7 =
快来做第一个评论的人吧~