zoukankan      html  css  js  c++  java
  • 分布式设计-集群

    • 多个节点共同保存数据
    • 作用
      • 扩展存储空间
      • 提高吞吐量, 提高写的性能
    • 和单机的不同点
      • 不再区分数据库, 只有0号库, 单机默认0-15
      • 不支持事务/管道/多值操作
    • 特点
      • 要求至少 三主三从
      • 要求必须开启 AOF持久化
      • 自动选择集群节点进行存储
      • 默认集成哨兵, 自动故障转移
    • 配置
        # 每个节点分别配置ip/端口
        bind 127.0.0.1
        port 6379
        # 集群配置
        cluster-enabled yes   # 开启集群
        cluster-config-file nodes-7000.conf  # 节点日志文件
        cluster-node-timeout 15000  # 节点超时时长 15秒
        # 开启AOF 及相关配置  
        appendonly yes  
    
    • 创建集群
      • redis的安装包中包含了redis-trib.rb,⽤于创建集群
      • 创建集群后, 重启redis会自动启动集群
        # 将命令复制,这样可以在任何⽬录下调⽤此命令
        sudo cp /usr/share/doc/redis-tools/examples/redis-trib.rb /usr/local/bin/
        # 安装ruby环境,因为redis-trib.rb是⽤ruby开发的
        sudo apt-get install ruby
        gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
        sudo gem install redis
        
        # 启动主从数据库 7000-7005.conf
        sudo redis-server 7000.conf
        ...
    
        # 创建集群
        redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
        # 访问集群  访问集群必须加-c选项, 否则无法进行读写操作
        redis-cli -p 7000 -c
    
    • redis集群不能支持事务和WATCH, 并发控制只能自己设计悲观锁(setnx)

    • python操作redis集群

      • 安装 pip install redis-py-cluster
    • 项目中的使用

      • 主从配置了哨兵和持久化机制, 用于保存用户的阅读历史/搜索历史等
      • 集群负责实现缓存设计
  • 相关阅读:
    mysql数据库 --数据类型、约束条件
    并发编程 --线程
    并发编程 --进程
    MySQL数据库 --基础
    网络编程之 TCP-UDP的详细介绍
    网络编程之 OSI七层协议
    python 元类、单例模式
    python 面向对象_多态、内置方法、反射
    Python 面向对象_继承、组合
    简单工厂设计模式
  • 原文地址:https://www.cnblogs.com/oklizz/p/11414389.html
Copyright © 2011-2022 走看看