Redis事务+持久化+主从复制+Redis集群

Redis事务

  • Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。

    • Redis事务的主要作用就是串联多个命令防止别的命令插队。

  • Redis事务中的三个命令

  • Redis的持久化

    • 再谈Redis和MemeCache的区别

      • Redis支持持久化   MemCache 不支持

      • MemCache 只支持简单的key-value     Redis除了简单的key-value之外还有五大数据类型

      • MemCache 是多线程加锁的形式  Redis是单线程+多路IO复用

    • 两种持久化方式

  • Redis主从复制

    • 就是主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制

      • 主机主要负责写,从机主要负责读

      • Redis事务+持久化+主从复制+Redis集群转存失败重新上传取消Redis事务+持久化+主从复制+Redis集群

      • 主要用途:

        • 读写分离,性能扩展

        • 容灾快速回复

    • 配置过程

      • Redis事务+持久化+主从复制+Redis集群转存失败重新上传取消Redis事务+持久化+主从复制+Redis集群

      • 示例:

        • 关掉appendaof no

        • 创建原始redis配置备份  redis6379.conf

        • Redis事务+持久化+主从复制+Redis集群转存失败重新上传取消Redis事务+持久化+主从复制+Redis集群

        • 将redis6379.conf复制几份

          • cp redis6379.conf redis6380.conf

        • %s/6379/6380整体替换

    • 命令

      • info replication (主从复制)

        • 打印主从复制的相关信息

      • slaveof <ip> <port>    拜师

        • 成为某个实例的从服务器   

                      • ctrl +l =clear

      • Redis事务+持久化+主从复制+Redis集群转存失败重新上传取消Redis事务+持久化+主从复制+Redis集群

      • Redis事务+持久化+主从复制+Redis集群转存失败重新上传取消Redis事务+持久化+主从复制+Redis集群

      • Redis事务+持久化+主从复制+Redis集群转存失败重新上传取消Redis事务+持久化+主从复制+Redis集群    在其他两台slaveof 127.0.0.1 6379

      • 主机set的key 从机会保存, 从机无法set

      • 问题:

        • 主机宕机时,从机如何操作

        • 主机从宕机状态恢复时,从机如何操作

    • 主机宕机时,从机如何操作

      • 默认情况下,主机宕机,从机不上位,主机恢复时仍然是主机;若从机宕机,恢复时,从机不再是从机

      • Redis事务+持久化+主从复制+Redis集群转存失败重新上传取消Redis事务+持久化+主从复制+Redis集群

      • 1.从头开始复制

      • 2.从机不可以写,只可以读get

      • 3.从机原地待命

      • 4.主机恢复后,从机仍可顺利复制

      • 5.从机恢复后,不再是该主的从机,变成初始状态

        • 从机可以继续收从机

    • Redis事务+持久化+主从复制+Redis集群转存失败重新上传取消Redis事务+持久化+主从复制+Redis集群

    • Redis事务+持久化+主从复制+Redis集群转存失败重新上传取消Redis事务+持久化+主从复制+Redis集群

    • 主机宕机时顶替主机

      • Redis事务+持久化+主从复制+Redis集群转存失败重新上传取消Redis事务+持久化+主从复制+Redis集群

      • 在从机的redis.conf文件中,加入    

        • slave-priority 100

    • 哨兵模式

  • 测试

          Set<redis.clients.jedis.HostAndPort> set=new  HashSet<redis.clients.jedis.HostAndPort>();

          redis.clients.jedis.HostAndPort e=new  redis.clients.jedis.HostAndPort("192.168.9.35", 6379);

          set.add(e);

          JedisCluster jCluster=new JedisCluster(set);

          jCluster.set("k2", "v2");

          System.out.println(jCluster.get("k2"));

          

Redis事务+持久化+主从复制+Redis集群正在上传…重新上传取消Redis事务+持久化+主从复制+Redis集群