007 搭建集群

 

'''
目录:
    一: 概念
    二: 配置
        1 修改文件
        2 加载配置
    三: 搭建
    四: 可能问题
        1 ruby 
    五: 验证
    六: python操作
'''

 

一: 概念

'''
集群: 是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。
一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放


分类: 软件; 硬件
    软件:只有一台电脑,启动了多个redis服务。
    硬件:存在多台实体的电脑,每台电脑上都启动了一个redis或者多个redis服务。
'''

 

二: 配置
  1 修改文件

port 7000
bind 192.168.0.102
daemonize yes
pidfile 7000.pid
cluster-enabled yes
cluster-config-file 7000_node.conf
cluster-node-timeout 15000
appendonly yes

# 说明
port 端口
bind IP
daemonize 是否以守护(后台)进程方式运行
pidfile pid文件
cluster-enabled 是否使用集群
cluster-config-file 集群文件
cluster-node-timeout 集群超时时间
appendonly 备份相关

配置文件: 链接

 

 

  2 加载配置

1 sudo redis-server 配置文件


三: 搭建

# redis的安装包中包含了redis-trib.rb,用于创建集群
指令: sudo cp /usr/share/doc/redis-tools/examples/redis-trib.rb /usr/local/bin/

# 安装ruby环境
指令: sudo apt-get install ruby

# 搭建
redis-trib.rb create --replicas 1 192.168.0.102:7000 192.168.0.102:7001 192.168.0.102:7002 192.168.0.102:7003 192.168.0.102:7004 192.168.0.102:7005
# 说明: redis-trib.rb create --replicas 1: 创建集群; 该集群是1主1从; 一共3个节点。

 

 1 配置成功: slots: (0 slots)是从服务器。 

 

四: 可能问题
  1 ruby

 

# 主要原因是由于安装的 ruby 不是最 新版本
# 查看地址: gem源
gem source -l -- 如果是https://rubygems.org/ 就需要更换

# 更换指令
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

# 通过 gem 安装 redis 的相关依赖
sudo gem install redis

 

# 安装离线ruby:

# 官网下载 
    官网地址: https://www.ruby-lang.org/en/downloads/
    选择版本: ruby-3.1.2.tar.gz

# 删除原版:
    dpkg -l | grep ruby
    aptitude purge ruby

# 离线安装: 命令
    1 解压: tar -xvzf ruby-3.1.2.tar.gz
    2 进入: cd ruby-3.1.2
    
    # 配置并编译源代码
    1: ./configure
    2: make
    3: make install
    
    # 安装后查询版本
    ruby -v
     
备注: 安装离线不成功,把网络关闭,重新安装

 

五: 验证

1 使用7000端口服务器,创建数据,最终执行7001端口服务器。

 

六: python操作

说明: 
    1 需要安装包: redis-py-cluster
    2 redis-py-cluster源码地址https://github.com/Grokzen/redis-py-cluster

 

from rediscluster import *

if __name__ == '__main__':
    try:
        # 构建节点 : Redis使⽤CRC16算法,将键和值写到某个节点上
        startup_nodes = [
            {"host": "192.168.0.102", "port": "7000"},
            {"host": "192.168.0.102", "port": "7001"},
            {"host": "192.168.0.102", "port": "7002"},
        ]
        # 构建对象 : RedisCluster
        sr = RedisCluster(startup_nodes=startup_nodes)
        # 增加
        result = sr.set('age', '18')
        print("set: ", result)
    except Exception as e:
        print(e)
set:  True

 

 

posted @ 2022-07-21 22:34  火焰马  阅读(76)  评论(0编辑  收藏  举报