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

Redis7——基础篇(一)

前言:此篇文章系本人学习过程中记录下来的笔记,里面难免会有不少欠缺的地方,诚心期待大家多多给予指教。

基础篇:

  1. Redis(一)

一、Redis定义

官网地址:Redis - The Real-time Data Platform

Redis 的全称是 Remote Dictionary Server,即远程字典服务 。它将数据存储在内存中,这使得它的读写速度极快,能够轻松应对每秒数十万次的读写操作,极大地提升了系统的响应速度。

除了高速读写,Redis 还支持多种数据结构,如字符串(string)、列表(list)、哈希(hash)、集合(set)和有序集合(sorted set) 等。不同的数据结构适用于不同的业务场景,这使得 Redis 能够满足各种复杂的业务需求。


二、Redis功能

(一)、存储多数据结构

  1. 字符串(String)
  2. 列表(list)
  3. 哈希(Hash)
  4. 集合(Set)
  5. 有序集合(Sorted Set)
  6. 位图(BitMap)
  7. 位域(BitFiled)
  8. 流(Stream)
  9. 地理空间(Geo)
  10. 基数统计(HyperLogLog)

(二)、高速读写

  1. 基于内存存储:Redis将数据存储在内存中,内存的读写速度远远快于磁盘,这使得Redis能够在极短的时间内完成数据的读写操作。
  2. 单线程模型:Redis采用单线程模型来处理命令请求,避免了多线程环境下的上下文切换和琐的竞争问题。在多线程模型中,线程直接的切换需要消耗一定的时间和资源,而且为了保证数据的一致性,往往需要使用各种琐机制,这会导致性能的下降。而Redis的单线程模型,就像一个高效的独奏者,专注地处理每一个请求,无需担心线程间的干扰,使得Redis能够充分发挥其高性能的优势。
  3. 高效的数据结构:前面提到的丰富的数据结构,都经过精心设计,具有高效的查找和操作性能。
  4. I/O多路复用:Redis使用I/O多路复用技术,能够在一个线程中同时监听多个套接字,当有事件发生时,才对相应的套接字进行处理,避免了I/O操作上的无谓等待,大大提高了Redis的并发处理能力。

(三)、持久化机制

虽然Redis主要将数据存储在内存中以实现高速读写,但为了防止数据因服务器重启、断电等意外情况丢失数据,持久化机制就显得尤其重要。Redis提高了两种持久化方式:RDB(Redis Database)和AOF(Append Only File)。

  1. RDB(Redis Database):RDB是将内存中的数据以快照的形式保存到磁盘上。当满足一定条件,如达到指定的时间间隔且有一定数量的写操作发生,Redis会fork一个子进程,由子进程将内存中的数据写入到一个临时的RDB文件中,写入完成后,在用临时文件替换原来的RDB文件。RDB的优点:①、生成的RDB文件体积小。②、恢复数据时速快,适用于大规模数据的恢复。RDB的缺点:①、丢失数据风险大。②、当保存的数据集比较大时,fork的过程比较耗时,会影响毫秒级的客户请求,影响性能。
  2. AOF(Append Only File):AOF则是将每次的写操作都追加到一个日志文件中,记录服务器执行的每一个写命令。当Redis重启时,会重新执行AOF文件中的命令,将数据恢复到之前的状态。AOF的优点:①、丢失数据风险比RDB小,数据完整性和一致性高。②、文件内容易于理解和解析。③、当文件变大时,可以自动进行压缩重写,避免占用过多磁盘空间。AOF的缺点:①、文件体积大,即使压缩过也比RDB大。②、AOF恢复数据的时速比RDB慢。

(四)、其他高级功能

  1. 发布/订阅(PUBLISH/SUBSCRIBE):是一种消息通信模式,发送者(PUBLISH)发送消息,订阅者(SUBSCRIBE)接收消息,可以实现进程间的消息传递。
  2. 事务(Transaction):Redis通过MULTI(开启事务)、EXEC(执行)、DISCARD(取消)、WATCH(监控某个key)四个命令来实现事务功能。事务可以将一组命令打包,要么全部成功执行,要么全部失败,没有回滚操作。
  3. 管道(Pipeline):管道功能允许客户端将多个命令一次性打包发给服务器,服务器在接收到这些命令后,以此执行并将所有响应一次性返回给客服端。虽然管道可以将多个命令一次性发送给服务器,但管道中的命令不具有原子性。也就是说,在管道执行过程中,如果某个命令执行失败,不会影响其他命令的执行。
  4. 分布式琐:在分布式系统中,为了保证同一时刻只有一个线程或者进程能够访问共享资源,需要使用分布式琐。Redis可以利用其原子性操作和高可用性来实现分布式琐。

用一张图总结Redis功能:


三、Redis下载与安装

(一)、下载

官方网站下载需要注册,麻烦 ̄へ ̄,建议直接上github。Release 7.4.2 · redis/redis · GitHub


(二)、安装与配置

1、windows

由于企业里面开发用到Redis,多数都是Linux,windows版可以自己手动安装与配置。


2、Linux

2.1、前提说明

在Linux下安装与配置Redis,有两种方案:

1、购买云服务器(自带Linux环境),直接安装和配置Redis即可。

2、安装VMWare本地虚拟机。

我采用方案二。VMWare的安装默认都会,这里不做说明,不会自行百度。

2.2、安装配置
1、Linux安装Redis必须具备c环境

下载gcc命令

yum -y install gcc-c++

查看gcc版本命令

gcc -v

2、安装Redis

可以将下载好的Redis上传的Linux上,也可以直接yun下载。将下载好的Redis放在/opt下面

wget https://download.redis.io/releases/redis-7.4.2.tar.gz


3、解压
tar -zxvf redis-7.4.2.tar.gz


4、编译与安装
make && make install

如果出现这段提示命令,代表安装成功,可以进入下一步了。


5、查看默认安装目录

Linux下的/usr/local相当于我们Windows下的C:\Program Files

文件说明:

  1. redis-benchmark:性能测试工具
  2. redis-check-aof:AOF文件修复工具
  3. redis-check-rdb:rdb文件修复工具
  4. redis-cli:redis客户端启动命令
  5. redis-sentinel:redis集群使用
  6. redis-server:redis服务端启动命令

6、拷贝原始配置文件

新建一个/myredis目录用来存放配置文件。


7、修改配置文件

用vim命令修改刚刚拷贝的文件,进行配置初始化处理。

vim修改命令自行百度查阅。修改点如下

  1. 默认daemoneize 改为 yes
  2. protected-mode 改为 no
  3. bind 127.0.0.1 直接注释(默认的会影响远程ip连接)
  4. 添加redis客户端登录密码 requirepass xxxx密码

8、启动redis服务

没有任何输出代表服务启动成功,(Linux环境有输出才害怕⊙﹏⊙∥)。


9、连接服务

输入ping,返回PONG,代表连接客户端成功。常用的一下参数说明:

-a:代表连接的redis服务器需要密码

-h:是指定服务器ip地址

-p:指定连接端口

-c:是连接redis集群

--pipe:将一组命令通过管道传递给redis


10、永远的hello world


11、关机

如果连接着客户端,直接shutdown。如果没有,就使用

redis-cli -a 密码 shutdown

进行关闭。


四、总结

至此,通往 Redis 知识殿堂的学习桥梁已然稳固搭建,真正的精彩征程才刚刚拉开帷幕。在这之后,将是一场充满挑战与惊喜的深度探索,每一步都可能解锁新的技能,每一次钻研都有望收获全新的感悟。接下来的学习才是这场 Redis 之旅的重头戏,让我们怀揣热忱,全力奔赴吧!


ps:努力到底,让持续学习成为贯穿一生的坚守。学习笔记持续更新中。。。。

相关文章:

Redis7——基础篇(一)

前言:此篇文章系本人学习过程中记录下来的笔记,里面难免会有不少欠缺的地方,诚心期待大家多多给予指教。 基础篇: Redis(一) 一、Redis定义 官网地址:Redis - The Real-time Data Platform R…...

day9手机创意软件

趣味类 in:记录趣味生活(通用) 魔漫相机:真人变漫画(通用) 活照片:让照片活过来(通用) 画中画相机:与众不同的艺术 年龄检测仪:比一比谁更年轻&#xf…...

C# Dictionary的实现原理

在 C# 中&#xff0c;Dictionary<TKey, TValue> 是一个基于哈希表&#xff08;Hash Table&#xff09;实现的键值对集合。它提供了高效的插入、删除和查找操作&#xff0c;平均时间复杂度接近 O(1)。下面是 Dictionary 的核心实现原理&#xff1a; 1. Dictionary 的核心数…...

学习笔记-人脸识别相关编程基础

通过编程实现人脸识别功能&#xff0c;需要掌握一定的技术基础&#xff0c;包括编程语言、图像处理、机器学习以及相关的库和框架&#xff1a; 1. 编程语言 Python&#xff1a;Python 是实现人脸识别最常用的语言之一&#xff0c;因为它有大量的库和框架支持&#xff0c;如 Op…...

BUU37 [DASCTF X GFCTF 2024|四月开启第一局]web1234【代码审计/序列化/RCE】

Hint1&#xff1a;本题的 flag 不在环境变量中 Hint2&#xff1a;session_start&#xff08;&#xff09;&#xff0c;注意链子挖掘 题目&#xff1a; 扫描出来www.zip class.php <?phpclass Admin{public $Config;public function __construct($Config){//安全获取基…...

(五)Spring Boot学习——spring security +jwt使用(前后端分离模式)

一定要熟悉spring security原理和jwt无状态原理&#xff0c;理解了才知道代码作用。 在 Spring Security JWT 认证流程中&#xff0c;通常的做法是&#xff1a; 用户提交用户名和密码Spring Security 认证管理器 (AuthenticationManager) 进行认证如果认证成功&#xff0c;生…...

Java中使用EasyExcel

Java中使用EasyExcel 文章目录 Java中使用EasyExcel一&#xff1a;EasyExcel介绍1.1、核心函数导入数据导出数据 1.2、项目实际应用导入数据导出数据 1.3、相关注解ExcelProperty作用示例 二&#xff1a;EasyExcel使用2.1、导入功能2.2、导出功能 三&#xff1a;EasyExcel完整代…...

前沿科技改变生活新趋势

纳米技术在电子设备制造中的应用越来越广泛。这种技术能够帮助制造更小、更快、更耐用的电子产品。 举个例子&#xff0c;手机的处理器是其核心部件。随着纳米技术的进步&#xff0c;现在的处理器比以前小得多&#xff0c;但功能却更强。这样不仅让手机变得更轻薄&#xff0c;…...

不到一个月,SQLite 3.49.0来了

距离 SQLite 3.48.0 发布不到一个月&#xff0c;SQLite 开发团队于 2025 年 2 月 6 日发布了 SQLite 3.49.0 版本。这更新速度的确让人感动&#xff0c;那么这个版本又有哪些更新呢&#xff1f; 查询优化器 新版本改进了自动索引&#xff08;query-time index&#xff09;优化…...

Android车机DIY开发之软件篇(十四)编译i.mx8mplus官方kernel

1.下载 下载地址 2.安装依赖 sudo apt-get update sudo apt-get install build-essential git libncurses5-dev libssl-dev bc sudo apt-get install gcc-aarch64-linux-gnu export CROSS_COMPILEaarch64-linux-gnu- 3.配置 make ARCHarm64 defconfig 4.编译 make ARCHa…...

Mac上搭建宝塔环境并部署PHP项目

安装Docker Desktop》搭建Centos版本的宝塔环境》部署PHP项目 1. 下载Docker for mac 软件&#xff1a;https://www.docker.com/ 或使用终端命令&#xff1a;brew install --cask --appdir/Applications docker 2. 使用命令安装宝塔环境的centos7系统&#xff1a; docker pul…...

3.3.3 VO-O语法- 语法算子(二)

循环遍历 由于VO语言是面向数据集的&#xff0c;其所有隐含的语义中都已经带有了遍历并计算的数据逻辑。因此&#xff0c;VO语言只提供了一种支持循环语法的算子--Loop算子。 Loop算子 Loop算子是一个容器算子&#xff0c;其可以实现对其内部子流程的循环迭代运行。但Loop算…...

安装 Ollama 需要哪些步骤?(windows+mac+linux+二进制+Docker)

安装 Ollama 的步骤根据操作系统不同会有所差异,以下是针对不同操作系统的详细安装指南: Windows 系统 下载安装包:访问 Ollama 官方下载页面,下载适用于 Windows 的安装程序 OllamaSetup.exe。运行安装程序:双击下载的安装包,按照提示完成安装。默认安装路径为 C:\User…...

HCIA项目实践--静态路由的综合实验

八 静态路由综合实验 &#xff08;1&#xff09;划分网段 # 192.168.1.0 24#分析&#xff1a;每个路由器存在两个环回接口&#xff0c;可以把两个环回接口分配一个环回地址&#xff0c;所以是四个环回&#xff0c;一个骨干&#xff0c;这样分配&#xff0c;不会出现路由黑洞#19…...

Electron视图进程和主进程通讯

快速创建基于vue的electron项目&#xff1a;quick-start/create-electron - npm 视图线程也就index.html是无法直接访问这个api的&#xff08;如果没有开启视图层访问nodejs的功能&#xff0c;现在几乎没法直接开启&#xff0c;开启了一堆警告提示&#xff09; 所以需要通过r…...

Vript-Hard——一个基于高分辨率和详细字幕的视频理解算法

一、概述 多模态学习的最新进展促进了对视频理解和生成模型的研究。随之而来的是&#xff0c;对高分辨率视频和详细说明所建立的高质量数据集的需求激增。然而&#xff0c;由于时间因素的影响&#xff0c;视频与文本的配对不像图像那样容易。准备视频和文本配对是一项困难得多…...

react脚手架搭建react项目使用scss

1.create-react-app 创建的项目&#xff0c;webpack配置默认是隐藏的 &#xff0c;如果要查看 或修改用npm run eject命令,因为create-react-app脚手架默认已经配置了scss、sass所以不用改webpack配置。如果用less 就需要自己添加配置 2.如果直接使用scss的文件会直接报错&…...

Vue.js 状态管理库Pinia

Pinia Pinia &#xff1a;Vue.js 状态管理库Pinia持久化插件-persist Pinia &#xff1a;Vue.js 状态管理库 Pinia 是 Vue 的专属状态管理库&#xff0c;它允许你跨组件或页面共享状态。 要使用Pinia &#xff0c;先要安装npm install pinia在main.js中导入Pinia 并使用 示例…...

【Stable Diffusion部署至GNU/Linux】安装流程

以下是安装Stable Diffusion的步骤,以Ubuntu 22.04 LTS为例子。 显卡与计算架构介绍 CUDA是NVIDIA GPU的专用并行计算架构 技术层级说明CUDA Toolkit提供GPU编译器(nvcc)、数学库(cuBLAS)等开发工具cuDNN深度神经网络加速库(需单独下载)GPU驱动包含CUDA Driver(需与CUDA …...

【C/C++算法】从浅到深学习---滑动窗口(图文兼备 + 源码详解)

绪论&#xff1a;冲击蓝桥杯一起加油&#xff01;&#xff01; 每日激励&#xff1a;“不设限和自我肯定的心态&#xff1a;I can do all things。 — Stephen Curry” 绪论​&#xff1a; 本章是算法训练的第二章----滑动窗口&#xff0c;它的本质是双指针算法的衍生所以我将…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构

React 实战项目&#xff1a;微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇&#xff01;在前 29 篇文章中&#xff0c;我们从 React 的基础概念逐步深入到高级技巧&#xff0c;涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...