Redis的配置文件和主从复制

四、 redis.conf 简单解读

1. 在哪

安装的时候肯定看到了,在文件夹里

2. 字节

​ 1. 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit

2.  对大小写不敏感

3. 分割

  1. 可以像 spring的配置文件一样,可以include 包含

4. 通用

  1. daemonize no 在守护进程下运行,要改成yes

  2. pidfile : 进程号文件

  3. port : 端口

  4. tcp-backlog : tcp

    设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列 + 已经完成三次握手队列。
    在高并发环境下你需要一个高backlog值来避免慢客户端连接问题。注意Linux内核会将这个值减小到/proc/sys/net/core/somaxconn的值,所以需要确认增大somaxconn和tcp_max_syn_backlog两个值
    
  5. timeout :

  6. bind

  7. tcp-keepalive

  8. loglevel : 日志水平,为四个种类

  9. logfile : 日志文件

  10. syslog-enabled

    1. 是否把日志输出到syslog中
  11. syslog-ident

    1. 指定syslog里的日志标志
  12. syslog-facility

    1. 指定syslog设备,值可以是USER或LOCAL0-LOCAL7
  13. databases : 数据库数量 16 个

5. 快照 Snapshotting

  1. save 秒钟 写操作次数
    1. RDB 是整个内存的快照
    2. 条件
      1. 是1分钟内改了1万次,
      2. 或5分钟内改了10次,
      3. 或15分钟内改了1次。
    3. 禁用
      1. 如果想禁用RDB持久化的策略,只要不设置任何save指令,或者给save传入一个空字符串参数也可以
  2. stop-writes-on-bgsave-error
    1. 如果配置成no,表示你不在乎数据不一致或者有其他的手段发现和控制
  3. rdbcompression
  4. rdbcompression:对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采,LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能
  5. rdbchecksum
  6. rdbchecksum:在存储快照后,还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能
  7. dbfilename
  8. dir

6. REPLICATION复制

7.SECURITY安全

  1. 设置密码
    1. config set requirepas “123456”
  2. 登录
    1. auth 123456

8.LIMITS限制

  1. maxclients :设置redis同时可以与多少个客户端进行连接。默认情况下为10000个客户端
  2. maxmemory :设置redis可以使用的内存量
    1. 一旦到达内存使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定
  3. maxmemory-policy
    1. volatile-lru:使用LRU算法移除key,只对设置了过期时间的键
    2. allkeys-lru:使用LRU算法移除key
    3. volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键
    4. allkeys-random:移除随机的key
    5. volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key
    6. noeviction:不进行移除。针对写操作,只是返回错误信息
  4. maxmemory-samples
    1. 设置样本数量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小,redis默认会检查这么多个key并选择其中LRU的那个

9.APPEND ONLY MODE追加

  1. appendonly

  2. appendfilename

  3. appendfsync

    1. always : 同步持久化
    2. everysec : 异步操作
    3. no
  4. no-appendfsync-on-rewrite:重写时是否可以运用Appendfsync,用默认no即可,保证数据安全性。

  5. auto-aof-rewrite-min-size:设置重写的基准值

  6. auto-aof-rewrite-percentage:设置重写的基准值

五、 redis 的复制

1. 是什么

​ 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,

自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主

  1. 读写分离
  2. 容灾恢复

2. 配置

  1. 配从(库)不配主(库)

  2. 从库配置:slaveof 主库IP 主库端口

    1. 每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件
    2. info replication : 查看配置信息
  3. 修改配置文件细节操作

    1. 拷贝多个redis.conf文件
    2. 开启daemonize yes
    3. pid文件名字
    4. 指定端口
    5. log文件名字
    6. dump.rdb名字
  4. 常用3 招

    1. 一主二仆
      1. 问题
        • 从机 第一次 全写,,以后 随写
        • 从机只负责 读,,不能写
        • 主机shutdown,,从机待命
        • 主机回来,从机连接
        • 从机 重启,必须重新配置绑定
    2. 薪火相传
      1. 像是接力赛 一样
      2. 中途变更向,会清楚之前的数据,重新考呗最新的
    3. 反客为主
      1. 当主机 宕机 后,在从机上手动选择 一个, 执行 slaveof no one 变成主机
      2. 当主机重启,属于另外一个系列,
  5. 复制原理

    由于是内存,可以参考 计算机组成原理的讲解

    1. 先 第一次连接 全量复制,,,然后增量复制

3. 哨兵模式

  1. 反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库

  2. 自定义的/myredis目录下新建sentinel.conf文件,名字绝不能错

  3. 内容

    1. sentinel monitor 被监控数据库名字(自己起名字) 127.0.0.1 6379 1
    2. 上面最后一个数字1,表示主机挂掉后salve投票看让谁接替成为主机,得票数多少后成为主机
  4. 启动哨兵

    1. redis-sentinel /myredis/sentinel.conf
    2. 上述目录依照各自的实际情况配置,可能目录不同
  5. 问题

    1. 如果 主机 宕机 后, 重启,直接变成 从机
  6. 一组sentinel能同时监控多个Master

4. 缺点 : 复制延时

原文地址:https://www.cnblogs.com/YJBlog/p/11815495.html