当前位置: 首页 > news >正文

redis简介及应用

文章目录

    • 1.redis简介
    • 2.安装配置
      • 2.1 单机部署
      • 2.2 配置
    • 3 主从部署
    • 4 哨兵部署
    • 5.集群部署
    • 6.客户端工具

1.redis简介

某些网站出现的问题,如12306、淘宝等…

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.安装配置

2.1 单机部署

安装gcc、关闭防火墙、关闭selinux等

#安装gcc
yum -y install gcc
#关闭防火墙
systemctl stop firewalld.service
#永久关闭防火墙
systemctl disable firewalld.service
#关闭selinux
setenforce 0
vim /etc/selinux/config
修改配置项:SELINUX=disabled,默认:#SELINUX=enforcingsed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

在这里插入图片描述

#创建文件夹
mkdir -p /usr/local/redis
#进入redis文件夹类
cd /usr/local/redis/
#可以选择使用wget下载
wget https://download.redis.io/redis-stable.tar.gz
#解压下载的redis包
tar -xf redis-stable.tar.gz
#进入redis-stable目录
cd redis-stable
#使用make install 编译安装
make install
#检查是否成功生成
ll /usr/local/bin/

启动服务器端(redis-server)

redis-server

在这里插入图片描述

启动客户端(redis-cli)

redis-cli

在这里插入图片描述

2.2 配置

在这里插入图片描述

# 备份并修改配置
cd /usr/local/redis/redis-stable
cp redis.conf redis.conf.bak
vim redis.conf# 88  修改bind项 * -::*支持远程连接
bind * -::*sed -i 's/bind 127.0.0.1 -::1/bind * -::*/g' /usr/local/redis/redis-stable/redis.conf# 310 开启守护进程 后台运行
daemonize yessed -i 's/daemonize no/daemonize yes/g' /usr/local/redis/redis-stable/redis.conf# 355 指定日记文件目录
logfile "/usr/local/redis/redis-stable/redis.log"sed -i 's/logfile ""/logfile "\/usr\/local\/redis\/redis-stable\/redis.log"/g' /usr/local/redis/redis-stable/redis.conf# 516  指定工作目录
dir /usr/local/redis/sed -i 's|dir ./|dir /usr/local/redis/|g' /usr/local/redis/redis-stable/redis.conf# 1050(测试时为了方便可以不设置密码)
# requirepass 123456# 111(不设置密码时,此设置为no) 允许远程连接 如果不设置密码必须将此设置关闭
protected-mode nosed -i 's/protected-mode yes/protected-mode no/g' /usr/local/redis/redis-stable/redis.conf# 启动服务器端
redis-server /usr/local/redis/redis-stable/redis.conf# 关闭服务
# redis-cli shutdown

若设置了密码,则客户端使用时需要指定密码

在这里插入图片描述

3 主从部署

在这里插入图片描述

作用

在这里插入图片描述

缺点

在这里插入图片描述

搭建

准备3台虚拟机:1主2从

在这里插入图片描述

在从节点上修改配置(其他配置见 2.2)

在这里插入图片描述

# 关闭服务
redis-cli shutdown
#打开配置文件
vim /usr/local/redis/redis-stable/redis.conf
#539 连接主机的ip地址 服务端口 
replicaof 192.168.9.3 6379
# 启动服务器端
redis-server /usr/local/redis/redis-stable/redis.conf

启动所有1主2从的服务后,在主节点查看(一条命令:redis-cli info replication)

#从机配置完成后  在主机上查看
info replication
#设置键值对  name是健 tom是值
SET name tom  
#获取键的值
GET name
#删除健
DEL name

在这里插入图片描述

在从节点的客户端也可以查看信息

在这里插入图片描述

此时在主节点set数据,会同步到从节点

4 哨兵部署

在这里插入图片描述

在这里插入图片描述

搭建

在这里插入图片描述

配置

  • 修改完主机的 sentinel.conf 后,复制到从机即可
  • 从主到从的顺序启动 redis-server(redis-server /usr/local/redis/redis-stable/redis.conf)
  • redis-server /usr/local/redis/redis-stable/redis.conf
    
  • 从主到从的顺序启动 redis-sentinel(redis-sentinel /usr/local/redis/redis-stable/sentinel.conf)
  • redis-sentinel /usr/local/redis/redis-stable/sentinel.conf
    

在这里插入图片描述

cd /usr/local/redis/redis-stablecp sentinel.conf sentinel.conf.bakvim sentinel.conf# 15 
daemonize yes# 34
logfile "/usr/local/redis/redis-stable/sentinel.log"# 73
dir /usr/local/redis# 93
# sentinel monitor <master-name> <ip> <redis-port> <quorum>
# <quorum> 是一个数字,表示当有多少个 sentinel 认为主服务器宕机时,它才算真正的宕机掉,通常数量为半数或半数以上才会认为主机已经宕机,<quorum> 需要根据 sentinel 的数量设置。
#主机ip
sentinel monitor mymaster 192.168.9.5 6379 2#远程发送到从机上
scp sentinel.conf 192.168.9.4:/usr/local/redis/redis-stable
#启动服务
redis-sentinel /usr/local/redis/redis-stable/sentinel.conf

查看哨兵信息

redis-cli -p 26379 info sentinel

模拟主机故障(停止 redis-server),在主机查看哨兵的日志信息

#关闭服务
redis-cli shutdown

在这里插入图片描述

在从机查看信息(其中一台从机选举为了主机)

在这里插入图片描述

此时把原主机的故障排除,重启后,发现其变为了从机 (sentinel.conf 和 redis.conf 文件末尾处自动修改了)

在这里插入图片描述

其他:关闭哨兵

redis-cli -p 26379 shutdown

5.集群部署

redis cluster 概念

在这里插入图片描述

作用

在这里插入图片描述

原理

在这里插入图片描述

搭建

在这里插入图片描述

准备

三主三从,应该准备6台虚拟机,但为了测试方便,主备3台即可,每台服务器上运行两个redis节点,一个master、一个slave。

配置步骤如下

在这里插入图片描述

6379 端口配置文件(6380的略,也就端口等参数不同)

# 允许所有ip访问
bind * -::*
# 后台运行
daemonize yes
# 允许远程连接
protected-mode no
# 开启集群
cluster-enabled yes
# 集群节点超时时间
cluster-node-timeout 5000
# 数据保存目录
dir "/usr/local/redis/cluster"
# 开启AOF持久化
appendonly yes
# 端口
port 6379
# log日志
logfile "/usr/local/redis/redis-stable/cluster/redis-6379.log"
# 集群配置文件
cluster-config-file nodes-3679.conf
# AOF文件名
appendfilename "appendonly-6379.aof"
# RBD文件名
dbfilename "dump-6379.rdb"

具体配置步骤

# 创建目录,用来存放集群相关的配置文件
mkdir -p /usr/local/redis/redis-stable/cluster
# 创建目录,用来存放数据
mkdir -p /usr/local/redis/cluster# 创建并编辑6379端口的redis配置文件
vim /usr/local/redis/redis-stable/cluster/redis-6379.conf
# 同理,配置6380端口的
vim /usr/local/redis/redis-stable/cluster/redis-6380.conf# 用 scp 把配置文件拷贝到另外两台服务器,如:
# scp redis-6379.conf 192.168.9.6:/usr/local/redis/redis-stable/cluster/# 启动redis服务
redis-server /usr/local/redis/redis-stable/cluster/redis-6379.conf
redis-server /usr/local/redis/redis-stable/cluster/redis-6380.conf # 查看服务或进程(如下图)
ps aux | grep redis

在这里插入图片描述

# 创建集群 ,在一台服务器上运行即可
# redis-cli --cluster create --cluster-replicas 1 主ip:端口  从ip:端口 ...
redis-cli --cluster create --cluster-replicas 1 192.168.9.3:6379 192.168.9.4:6379 192.168.9.5:6379 192.168.9.6:6379 192.168.9.7:6379 192.168.9.8:6379

在这里插入图片描述

配置完毕,查看集群信息

# 查看集群信息
redis-cli cluster info
redis-cli cluster nodes
# 查看主从信息
redis-cli info replication

其中:192.168.9.5:6379 是主节点,其从节点是 192.168.9.6:6380

在这里插入图片描述

模拟故障转移

192.168.9.5:6379 主节点如果挂掉了,则 192.168.9.6:6380 会自动提升为主节点

# 在 192.168.9.5 ,停止主节点服务(默认端口6379)
redis-cli shutdown

在 192.168.9.6 查看节点情况,发现其 6380 的从节点提升为了主节点

在这里插入图片描述

当 192.168.9.5:6379 恢复运行后

# 在 192.168.9.5 ,启动6379端口的服务 
redis-server /usr/local/redis/redis-stable/cluster/redis-6379.conf

查看集群节点信息

在这里插入图片描述

6.客户端工具

常用的客户端工具有:RedisDesktopManager、tiny RDM 等

tiny RDM 下载地址:https://redis.tinycraft.cc/zh/

相关文章:

redis简介及应用

文章目录 1.redis简介2.安装配置2.1 单机部署2.2 配置 3 主从部署4 哨兵部署5.集群部署6.客户端工具 1.redis简介 某些网站出现的问题&#xff0c;如12306、淘宝等… 2.安装配置 2.1 单机部署 安装gcc、关闭防火墙、关闭selinux等 #安装gcc yum -y install gcc #关闭防火墙…...

Electron使用WebAssembly实现CRC-8 MAXIM校验

Electron使用WebAssembly实现CRC-8 MAXIM校验 将C/C语言代码&#xff0c;经由WebAssembly编译为库函数&#xff0c;可以在JS语言环境进行调用。这里介绍在Electron工具环境使用WebAssembly调用CRC-8 MAXIM格式校验的方式。 CRC-8 MAXIM校验函数WebAssembly源文件 C语言实现C…...

人工智能赋能企业系统架构设计:以ERP与CRM系统为例

一、引言 1.1 研究背景与意义 在数字化时代&#xff0c;信息技术飞速发展&#xff0c;人工智能&#xff08;Artificial Intelligence, AI&#xff09;作为一项具有变革性的技术&#xff0c;正深刻地影响着各个领域。近年来&#xff0c;AI 在技术上取得了显著突破&#xff0c;…...

NacosRce到docker逃逸实战

NacosRce到docker逃逸实战 1、Nacos Derby Rce打入内存马 这个漏洞的原理大家应该都知道&#xff0c; 2.3.2 < Nacos < 2.4.0版本默认derby接口未授权访问&#xff0c;攻击者可利用未授权访问执行SQL语句加载构造恶意的JAR包导致出现远程代码执行漏洞。 在日常的漏洞挖…...

Linux:文件系统(软硬链接)

目录 inode ext2文件系统 Block Group 超级块&#xff08;Super Block&#xff09; GDT&#xff08;Group Descriptor Table&#xff09; 块位图&#xff08;Block Bitmap&#xff09; inode位图&#xff08;Inode Bitmap&#xff09; i节点表&#xff08;inode Tabl…...

在Spring Cloud中将Redis共用到Common模块

前言 在分布式系统中&#xff0c;共用组件的设计可以极大地提升代码复用性和维护性。Spring Cloud中将Redis共用到一个公共模块&#xff08;common模块&#xff09;是一个常见的设计实践&#xff0c;这样可以让多个微服务共享相同的Redis配置和操作逻辑。本文将详细介绍如何在…...

如何解决 Vue 应用中的内存泄漏

如何解决 Vue 应用中的内存泄漏 如何解决 Vue 应用中的内存泄漏常见的内存泄漏原因1. 组件生命周期管理不善2. 闭包引起的引用3. 数据订阅与发布系统4. 第三方库的内存泄漏5. 路由缓存和组件实例堆积排查内存泄漏的工具1. **Chrome DevTools**2. **Firefox Developer Tools**3.…...

什么是物理地址,什么是虚拟地址?

摘要 什么是物理地址&#xff0c;什么是虚拟地址&#xff1f; 如果处理器没有MMU或未启用&#xff0c;CPU执行单元发出的内存地址直接传到芯片引脚上&#xff0c;被内存芯片接受&#xff0c;这称为物理地址&#xff08;Physical Addraress&#xff09; 如果处理器启用了MMU&a…...

find 和 filter 都是 JavaScript 数组的常用方法

find 和 filter 都是 JavaScript 数组的常用方法&#xff0c;用来查找符合条件的元素&#xff0c;但它们有一些关键的区别&#xff1a; 1. find 方法 返回值&#xff1a;find 方法返回数组中 第一个符合条件的元素&#xff0c;如果没有找到符合条件的元素&#xff0c;返回 un…...

MVC、MVP和MVVM模式

MVC模式中&#xff0c;视图和模型之间直接交互&#xff0c;而MVP模式下&#xff0c;视图与模型通过Presenter进行通信&#xff0c;MVVM则采用双向绑定&#xff0c;减少手动同步视图和模型的工作。每种模式都有其优缺点&#xff0c;适合不同规模和类型的项目。 ### MVVM 与 MVP…...

基于RTOS的STM32游戏机

1.游戏机的主要功能 所有游戏都来着B站JL单片机博主开源 这款游戏机具备存档与继续游戏功能&#xff0c;允许玩家在任何时候退出当前游戏并保存进度&#xff0c;以便日后随时并继续之前的冒险。不仅如此&#xff0c;游戏机还支持多任务处理&#xff0c;玩家可以在退出当前游戏…...

【CPP】CPP经典面试题

文章目录 引言1. C 基础1.1 C 中的 const 关键字1.2 C 中的 static 关键字 2. 内存管理2.1 C 中的 new 和 delete2.2 内存泄漏 3. 面向对象编程3.1 继承和多态3.2 多重继承 4. 模板和泛型编程4.1 函数模板4.2 类模板 5. STL 和标准库5.1 容器5.2 迭代器 6. 高级特性6.1 移动语义…...

WPF基础03——InitializeComponent()函数解释

总述 InitializeComponent&#xff08;&#xff09;&#xff0c;是MainWindow中的构造函数&#xff0c;实际写项目过程中&#xff0c;多多少少都会碰到该函数报错的情况&#xff0c;现在对InitializeComponent()做一些理解和说明。 在 WPF 中&#xff0c;XAML 文件和代码后台…...

如何在自己mac电脑上私有化部署deep seek

在 Mac 电脑上私有化部署 DeepSeek 的步骤如下&#xff1a; 1. 环境准备 安装 Homebrew&#xff08;如果尚未安装&#xff09;&#xff1a; Homebrew 是 macOS 上的包管理工具&#xff0c;用于安装依赖。 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com…...

iOS 老项目适配 #Preview 预览功能

前言 iOS 开发者 最憋屈的就是UI 布局慢,一直以来没有实时预览功能,虽然swiftUI 早就支持了,但是目前主流还是使用UIKit在布局,iOS 17 苹果推出了 #Preview 可以支持UIKit 实时预览,但是仅仅是 iOS 17,老项目怎么办呢?于是就有了这篇 老项目适配 #Preview 预览 的文章,…...

7 与mint库对象互转宏(macros.rs)

macros.rs代码定义了一个Rust宏mint_vec&#xff0c;它用于在启用mint特性时&#xff0c;为特定的向量类型实现与mint库中对应类型的相互转换。mint库是一个提供基本数学类型&#xff08;如点、向量、矩阵等&#xff09;的Rust库&#xff0c;旨在与多个图形和数学库兼容。这个宏…...

pytorch实现变分自编码器

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 变分自编码器&#xff08;Variational Autoencoder, VAE&#xff09;是一种生成模型&#xff0c;属于深度学习中的无监督学习方法。它通过学习输入数据的潜在分布&#xff08;Latent Distribution&#xff09;&…...

Node.js与嵌入式开发:打破界限的创新结合

文章目录 一、Node.js的本质与核心优势1.1 什么是Node.js?1.2 嵌入式开发的范式转变二、Node.js与嵌入式结合的四大技术路径2.1 硬件交互层2.2 物联网协议栈2.3 边缘计算架构2.4 轻量化运行时方案三、实战案例:智能农业监测系统3.1 硬件配置3.2 软件架构3.3 核心代码片段四、…...

Noise Conditional Score Network

NCSN p σ ( x ~ ∣ x ) : N ( x ~ ; x , σ 2 I ) p_\sigma(\tilde{\mathrm{x}}|\mathrm{x}) : \mathcal{N}(\tilde{\mathrm{x}}; \mathrm{x}, \sigma^2\mathbf{I}) pσ​(x~∣x):N(x~;x,σ2I) p σ ( x ~ ) : ∫ p d a t a ( x ) p σ ( x ~ ∣ x ) d x p_\sigma(\mathrm…...

低代码系统-产品架构案例介绍、蓝凌(十三)

蓝凌低代码系统&#xff0c;依旧是从下到上&#xff0c;从左至右的顺序。 技术平台h/iPaas 指低层使用了哪些技术&#xff0c;例如&#xff1a;微服务架构&#xff0c;MySql数据库。个人认为&#xff0c;如果是市场的主流&#xff0c;就没必要赘述了。 新一代门户 门户设计器&a…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么&#xff1f;它的作用是什么&#xff1f; Spring框架的核心容器是IoC&#xff08;控制反转&#xff09;容器。它的主要作用是管理对…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋&#xff0c;无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话&#xff0c;配置.bahs_profile后也能解决上下翻页这些&#xff0c;但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...