• Linux--Redis 群集


    9.1.1 关系型数据库非关系型数据库

          数据库按照其结构可以分为关系型数据库与其他数据库,而这些其他数据库我们将其统称为非 关系型数据库。Redis数据库是一个非关系型数据库

    1、关系型数据库

           关系型数据库是一个结构化的数据库,创建在关系模型基础上,一般面向记录。它借助于集合 代数等數学概念和方法来处理数据库中的数据。关系模型指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。现实世界中,各种实体与实体之间的各种联系都可以用关系模型来表示。SQL (Structured Query Language,结构化查询语言)语句就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作。

           主流的关系型数据库包括Oracle、MySQL、SQL Server、 Microsoft Access、DB2等。

    2、非关系型数据库

            NoSQL(NoSQL = Not Only SQL),意思是“不仅仅是SQL”,是非关系型数据库的总称。主流的NoSQL数据库有Redis、MongBD、Hbase、CouhDB等。以上这些数据库,它们的存储方式、存储结构以及使用的场景都是完全不同的。所以我们认为它是一个非关系型数据库的集合,而不是像关系型数据库一样,是一个统称。换言之,主流的关系型数据库以外的数据库,都是非关系型的。NoSQL 数据库凭借着其非关系型、分布式、开源和横向扩展等优势,被认为是下一代数据库产品。

    9.1.2 Redis基础

    1. Redis简介

          Redis 是一个开源的,使用C语言编写、支持网络、可基于内存亦可持久化的日志型、key-value (键值对)数据库,是目前分布式架构中不可或缺的一环。

           Redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Redis进程,而Redis 的实际处理速度则完全依靠于主进程的执行效率。若在服务器上只运行一个Redis进程,当多个客户端同时访问时,服务器的处理能力会有一定程度的下降,若在同一台服务器上开启多个Redis进程, Redis在提高并发处理能力的同时会给服务器的CPU造成很大压力。也就是说,在实际生产环境中。 需要根据实际的需求来决定开启多少个Redis进程。若对高并发要求更高一些,可能会考虑在同一台 服务器上开启多个进程:若CPU资源比较紧张,采用单进程即可。

    Redis具有一下几个优点。

    > 具有极高的数据读写速度。

    > 支持丰富的数据类型。

    > 支持数据的持久化。

    > 原子性。

    > 支持数据备份。

    部署配置实验

    实验环境

    虚拟机 6台 centos7.9

    网卡NAT模式 数量 1

    组件包Redis安装包

    设备

    IP

    备注

    Centos01

    192.168.161.111

    Node1

    Centos02

    192.168.161.112

    Node2

    Centos03

    192.168.161.113

    Node3

    Centos04

    192.168.161.114

    Node4

    Centos05

    192.168.161.115

    Node5

    Centos06

    192.168.161.116

    Node6

    初始配置

    关闭防火墙关闭Selinux

    Systemctl disable firewalld --now

    关闭Selinux

    1. setenforce 0
    2. sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

    配置IP DNS 网关

    nmtui

    上传Redis安装包

    安装组件(1~6台可同时操作)

    [root@node1 ~]# yum -y install gcc vim net-tools
    

    解压到/usr/src/ 目录下

    [root@node1 ~]# tar zxf redis-7.2.4.tar.gz -C /usr/src/
    

    进入解压目录进行编译安装

    [root@node1 ~]# cd /usr/src/redis-7.2.4/
    
    [root@node1 redis-7.2.4]# make && make install
    

    Redis操作命令关联系统

    [root@node1 redis-7.2.4]# mkdir cluster
    
    1. [root@node1 redis-7.2.4]# mkdir cluster/6001
    2. [root@node1 redis-7.2.4]# cp redis.conf cluster/6001
    3. [root@node1 redis-7.2.4]# mkdir cluster/6002
    4. [root@node1 redis-7.2.4]# cp redis.conf cluster/6002
    5. [root@node1 redis-7.2.4]# mkdir cluster/6003
    6. [root@node1 redis-7.2.4]# cp redis.conf cluster/6003
    7. [root@node1 redis-7.2.4]# mkdir cluster/6004
    8. [root@node1 redis-7.2.4]# cp redis.conf cluster/6004
    9. [root@node1 redis-7.2.4]# mkdir cluster/6005
    10. [root@node1 redis-7.2.4]# cp redis.conf cluster/6005
    11. [root@node1 redis-7.2.4]# mkdir cluster/6006
    12. [root@node1 redis-7.2.4]# cp redis.conf cluster/6006

     分别修改,1~6台可同时操作 (每台主机的需要修改cluster/6001/redis.conf ~ cluster/6006/redis.conf)

    1. [root@node1 redis-7.2.4]# vim cluster/6001/redis.conf
    2. bind 192.168.160.51 //127.0.0.1 修改对应节点IP
    3. protected-mode no //将 yes 修改no关闭保护功能
    4. port 6001 //6379 端口修改对应目录的
    5. daemonize yes //no 修改 yes 开启守护进程
    6. cluster-enabled yes //将 # 删除 开启群集功能
    7. cluster-config-file nodes-6379.conf //将 # 删除 开启群集配置文件
    8. cluster-node-timeout 15000 //将 # 删除 开启群集节点超时

    将群集目录 cluster 复制到其它节点(如远端没有同时操作以上步骤,可从本机复制过去)

    1. [root@node1 redis-7.2.4]# tar zcf cluster-dir.tar.gz cluster
    2. [root@node1 redis-7.2.4]# scp cluster-dir.tar.gz root@192.168.161.112:/usr/src/redis-7.2
    3. 该ip为远端ip
    [root@node2 redis-7.2.4]# tar zxf cluster-dir.tar.gz //在node2解包

    每个节点 启动redis服务 不同节点变换目录 cluster/6002/redis.conf (不可6台同时操作共同启动)

    1. [root@node1 redis-7.2.4]# redis-server cluster/6001/redis.conf
    2. [root@node1 redis-7.2.4]# ps -aux //查看进程

    使用脚本创建群集 仅在 node1 操作

    [root@node1 redis-7.2.4]# yum -y install ruby ruby-devel rpm-build
    [root@node1 redis-7.2.4]# redis-cli --cluster create 192.168.161.111:6001 192.168.161.112:6002 192.168.161.113:6003 192.168.161.114:6004 192.168.161.115:6005 192.168.161.116:6006 --cluster-replicas 1  //创建群集

    1. [root@node1 redis-7.2.4]# redis-cli -h 192.168.161.111 -p 6001 -c //连接本机上的 Redis 数据库(可连接本机也可连接远端主机数据库)
    2. [root@node1 redis-7.2.4]# redis-cli (仅连接本机)
    192.168.161.111:6001> CLUSTER SLOTS
    

    测试,在node1创建aa

    1. 192.168.161.111:6001> set aa bt135
    2. 192.168.161.111:6001> get aa

    在node2中查找在node1中创建的aa

    1. [root@node2 redis-7.2.4]# redis-cli -h 192.168.161.112 -p 6002 -c
    2. 192.168.161.112:6002> get aa

  • 相关阅读:
    数仓-oltp和olap
    Qt的定时器QTimer
    Kubernetes:(五)Pod进阶(资源限制、健康检查)
    Docker三剑客之docker-swarm
    Arduino是如何实现打开串口时,程序复位的?
    小程序源码:王者荣耀战力查询微信小程序源码下载支持安卓苹果微信QQ等多区查询
    Maven进阶学习指南
    沉睡者 - 现在的人为什么不好好工作,都想着「搞点副业」?
    [游戏开发]游戏当中的旋转计算
    bootstrap5 常用类大全
  • 原文地址:https://blog.csdn.net/2301_77023501/article/details/136373546