• redis 学习


    本篇已收录至redis in action 学习笔记系列

    redis 支持数据文件的复制, 是因为 redis server 也需要部署很多个用于分担负载压力. 尽管 redis 的性能很好, 也有某些请求在处理上会比较耗时, 当某个请求需要耗费 10ms 处理时, 1秒内 redis 单实例能够处理的请求就只有100个请求命令.

    sunionstore 命令的性能. 在主频为 2.4 GHz 的英特尔酷睿2处理器上, 对两个分别包含 10000 条元素的集合执行 sunionstore 命令生成一个 20000条元素的集合结果, 通常要耗费 7,8ms

    如何复制 redis 的数据

    配置一个从服务器连接主服务器

    在启动 redis server 指定的 conf 时, 修改里面的 slaveof host port, 就可以将启动的 server 连接到已经启动的另一个 server 上. 也可以在当前 server 启动以后, 发出 slaveof host port 命令, 指定连接一个server. 或者 slaveof no one 关闭连接.

    redis server 之间复制数据的完整过程

    步骤 主服务器 从服务器
    1 等待命令接入 连接主server
    2 开始执行 bgsave, 并使用缓冲区记录之后的写入命令 根据配置选项来决定是否使用现有的数据来应答客户端的请求, 或者返回错误结果.
    3 bgsave 执行完毕, 向从服务器发送文件, 并在发送期间继续使用缓冲区记录写入命令 丢弃原有的旧数据, 载入主server发送来的数据.
    4 快照文件发送完毕, 开始向从服务器发送缓冲区的写入命令 完成快照数据的载入操作, 开始接收命令
    5 完成缓冲区的命令传送, 从现在开始, master每次写入一条数据, 就向slave发送一条写入命令 完成master发送的缓冲区写入命令, 从现在开始, 接收并执行每个master传来的写入命令

    一些坑

    redis不支持master-master的复制机制

    尽量避免多个slave不同时间的连接master, 会导致master不断地执行bgsave, 影响系统性能, 所以当数据是一样的时候, 后续的slave可以将已经连上master的slave作为数据源, 从而形成 master-slave-slave

    通过主从服务器以及aof模式保护数据

    可以将每个slave的aof模式都开启, 并且设置成 everysec 级别. 这样就能够在多台server上保存完整的数据备份.

  • 相关阅读:
    类的访问级别
    包和静态引入
    数组
    流程控制
    适合初学者的ROS机器人教程(3): ROS下使用Python对UR5机器人建模与控制
    适合初学者的强化学习教程(1): python使用gym实践和注意事项
    适合初学者的ROS机器人教程(1): Ubuntu下ROS创建自己的包和使用github下载的包
    适合初学者的ROS机器人教程(2): Ubuntu下ROS使用Gazebo和Rviz对UR5机器人建模
    spyder使用IPython的ipdb调试
    mysql创建外键
  • 原文地址:https://www.cnblogs.com/it-dennis/p/12571280.html
Copyright © 2020-2023  润新知