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

setenforce 0
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
[root@node1 redis-7.2.4]# mkdir cluster/6001
[root@node1 redis-7.2.4]# cp redis.conf cluster/6001[root@node1 redis-7.2.4]# mkdir cluster/6002
[root@node1 redis-7.2.4]# cp redis.conf cluster/6002[root@node1 redis-7.2.4]# mkdir cluster/6003
[root@node1 redis-7.2.4]# cp redis.conf cluster/6003[root@node1 redis-7.2.4]# mkdir cluster/6004
[root@node1 redis-7.2.4]# cp redis.conf cluster/6004[root@node1 redis-7.2.4]# mkdir cluster/6005
[root@node1 redis-7.2.4]# cp redis.conf cluster/6005[root@node1 redis-7.2.4]# mkdir cluster/6006
[root@node1 redis-7.2.4]# cp redis.conf cluster/6006

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

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

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

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

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

[root@node1 redis-7.2.4]# redis-server cluster/6001/redis.conf [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  //创建群集

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

测试,在node1创建aa

192.168.161.111:6001> set aa bt135192.168.161.111:6001> get aa

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

[root@node2 redis-7.2.4]# redis-cli -h 192.168.161.112 -p 6002 -c192.168.161.112:6002> get aa

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2822287.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

MATLAB练习题:排队论问题的模拟

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 下面我们来看一道排队论的题目。假设某银行工作时间内只有一个…

硬盘坏了怎么把数据弄出来?数据恢复方法推荐

在数字化时代电脑硬盘中的数据承载着我们的工作成果、生活回忆和珍贵资料。然而一旦硬盘出现故障,数据的安全就变得岌岌可危。那么当电脑硬盘出现问题时,我们真的无法挽回那些重要数据了吗?答案是:不一定!本文将为您介…

【GPU驱动开发】- AST简介

前言 不必害怕未知,无需恐惧犯错,做一个Creator! AST,抽象语法树,是一种包含丰富语义信息的格式,其中包括类型、表达式树和符号等。 TranslationUnitDecl:该类表示一个输入源文件 ASTContext&…

Socket网络编程(六)——简易聊天室案例

目录 聊天室数据传输设计客户端、服务器数据交互数据传输协议服务器、多客户端模型客户端如何发送消息到另外一个客户端2个以上设备如何交互数据? 聊天室消息接收实现代码结构client客户端重构server服务端重构自身描述信息的构建重构TCPServer.java基于synchronize…

Android 12.0 framework关于systemUI定制之导航栏透明背景的功能实现

1.概述 在12.0的系统rom产品定制化开发中,在对于系统原生SystemUI的导航栏背景在沉浸式导航栏的 情况下默认是会随着背景颜色的变化而改变的,在一些特定背景下导航栏的背景也是会改变的,所以由于产品开发需要 要求需要设置导航栏背景为透明的,所以就需要在Activity创建的时…

第十五天-爬虫项目实战

目录 1.介绍 2.代码 1.main.py 2.PageSider.py 3.DetailSpider.py 4.DataParse.py 5.Constant.py 6.HanderRequest.py 1.介绍 1. 使用多线程爬取网站 2.爬取数据后保存至excel 3.爬取网站(仅做测试)网创类项目爬取:https://www.maomp.com/ 4..实现效果 …

Java已死?凛冽寒风,刺骨现实

文章首发于公众号:职谷智享 2024年,寒风凛冽,不仅吹进了人们的衣领,也吹进了程序员的心里。曾经风光无限的Java,如今似乎正在走向末路。 招聘需求骤减,求职者如过江之鲫 猎聘网的数据显示,20…

Linux 任务进程命令练习

1、通过ps命令的两种选项形式查看进程信息 2、通过top命令查看进程 3、通过pgrep命令查看sshd服务的进程号 4、查看系统进程树 5、使dd if/dev/zero of/root/file bs1M count8190 命令操作在前台运行 6、将第5题命令操作调入到后台并暂停 7、使dd if/dev/zero of/root/file2 bs…

Flutter中Future和Stream关系

Future和Stream类是Dart异步编程的核心。 Future 表示一个不会立即完成的计算过程。与普通函数直接返回结果不同的是异步函数返回一个将会包含结果的 Future。该 Future 会在结果准备好时通知调用者。 Stream 是一系列异步事件的序列。其类似于一个异步的 Iterable,…

力扣SQL50 大的国家 查询

Problem: 595. 大的国家 Code select name,population,area from World where area > 3000000 or population > 25000000;

国外站群服务器科普:定义、用途与价值

在数字化时代,服务器扮演着至关重要的角色,而站群服务器则是其中的一种特殊形态。尤其对于需要在全球范围内进行业务部署的企业或个人来说,国外站群服务器成为了不可或缺的工具。那么,国外站群服务器究竟是什么呢?它有哪些用途呢…

【Web安全靶场】sqli-labs-master 54-65 Challenges 与62关二分法和like模糊搜索

sqli-labs-master 54-65 Challenges 其他关卡和靶场见专栏… 文章目录 sqli-labs-master 54-65 Challenges第五十四关-联合注入第五十五关-联合注入第五十六关-联合注入第五十七关-联合注入第五十八关-报错注入第五十九关-报错注入第六十关-报错注入第六十一关-报错注入第六十…

抖音视频评论批量采集软件|视频数据提取工具

开发背景: 随着抖音视频的流行和使用频率增加,用户对批量采集抖音视频评论的需求逐渐凸显。传统的下载方式效率低下,无法满足快速采集数据的要求。为了解决这一问题,我们开发了一款基于C#的抖音视频评论批量采集软件,旨…

React富文本编辑器开发(三)

现在我们的编辑器显示的内容很单一,这自然不是我们的目标,让呈现的内容多元化是我们的追求。这就需要让编辑器能够接收多元素的定义。从初始数据的定义我们可以推断数据的格式远不止一种,那么其它类型的数据如何定义及呈现的呢,我…

kohya_ss, stable diffusion 显示MaxRetryError: HTTPSConnectionPool()的解决方法

说白了就是访问huggingface.co下载模型、json配置失败,需要挂梯子。 然而有时候明明开了梯子,网页端可以访问google、huggingface.co却依然报上述错。 这时候说明没有开代理,执行的脚本没有连接上梯子对应的端口。 解决办法:手…

【MySQL】数据库中常用的函数

目录 聚合函数COUNT()函数的多种用法COUNT(*)COUNT(主键)COUNT(1)COUNT(常量)COUNT(非主键)COUNT(distinct(字段)) COUNT()函数小结 字符函数length(str)函数:获取参数值的字节个数concat(str1,str2,...)函数:字符串拼接upper(str)、lower(str)函数:大小…

pdf.js使用步骤

使用pdfjs 网页在线预览需要后端服务器支持 1、下载PDF.js 源码包 地址:PDF.js 2、解压源码包,将源码包放置到后端服务器 3、后端部署完成后 访问 viewer.html 类似上图 4、访问在线pdf文件 http://localhost:8081/web/viewer.html?filexxxx.pdf …

[⑥5G NR]: 无线接口协议,信道映射学习

5G系统整体包括核心网、接入网以及终端部分,接入网与终端间通过无线空口协议栈进行连接。无线接口可分为三个协议层:物理层(L1)、数据链路层(L2)和网络层(L3)。 L1:物理…

JVM运行时数据区——虚拟机栈

文章目录 1、虚拟机栈概述1.1、StackOverflowError1.2、OOM异常 2、栈的存储单位3、局部变量表3.1、局部变量表简介3.2、Slot 4、操作数栈5、栈顶缓存技术6、动态链接7、方法的调用7.1、方法调用的分类7.2、虚方法与非虚方法7.3、关于invokedynamic指令7.4、方法重写的本质7.5、…

学习Fiddler抓包

Fiddler通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置端点、以及修改输入输出数据等功能 本质是一个web代理服务器,它的默认工作端口是8888.…