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:努力到底,让持续学习成为贯穿一生的坚守。学习笔记持续更新中。。。。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8s组件

一、Kubernetes 集群架构组件 K8S 是属于主从设备模型(Master-Slave 架构),即有 Master 节点负责集群的调度、管理和运维,Slave 节点是集群中的运算工作负载节点。 主节点一般被称为 Master 节点,master节点上有 apis…

草图绘制技巧

1、点击菜单栏文件–》新建–》左下角高级新手切换–》零件; 2、槽口:直槽口,中心点槽口,三点源槽口,中心点圆弧槽口; 3、草图的约束:需要按住ctrl键,选中两个草图,然后…

一款基于若依的wms系统

Wms-Ruoyi-仓库库存管理 若依wms是一套基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单。毫无保留给个人及企业免费使用。 前端采用Vue、Element UI。后端采用Spring Boot、Spring Security、Redis & Jwt。权限认证使用Jwt,支持多终…

AWS transit gateway 的作用

说白了,就是根据需要,来起到桥梁的作用,内部沟通,或者面向internet. 先看一下diagram 图: 最中间的就是transit gateway, 要达到不同vpc 直接通讯的目的: The following is an example of a default transit gateway route table for the attachments shown in the previ…

把 CSV 文件摄入到 Elasticsearch 中 - CSVES

在我们之前的很多文章里,我有讲到这个话题。在今天的文章中,我们就提重谈。我们使用一种新的方法来实现。这是一个基于 golang 的开源项目。项目的源码在 https://github.com/githubesson/csves/。由于这个原始的代码并不支持 basic security 及带有安全…

[操作系统] 基础 IO:理解“文件”与 C 接口

在 Linux 操作系统中,“一切皆文件”这一哲学思想贯穿始终。从基础 IO 学习角度来看,理解“文件”不仅仅意味着了解磁盘上存储的数据,还包括对内核如何管理各种资源的认识。本文将从狭义与广义两个层面对“文件”进行解读,归纳文件…

国产编辑器EverEdit - 二进制模式下观察Window/Linux/MacOs换行符差异

1 换行符格式 1.1 应用场景 稍微了解计算机历史的人都知道, 计算机3大操作系统: Windows、Linux/Unix、MacOS,这3大系统对文本换行的定义各不相同,且互不相让,导致在文件的兼容性方面存在一些问题,比如它们…

设计模式Python版 命令模式(下)

文章目录 前言一、命令队列的实现二、撤销操作的实现三、请求日志四、宏命令 前言 GOF设计模式分三大类: 创建型模式:关注对象的创建过程,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式&…

Linux:进程概念详解

​ 进程概念详解 一、进程的基本概念 进程在书本上的定义是:计算机中正在运行的程序实例。仅此描述可能让很多人感到困惑。 我们磁盘上存储着.exe文件,启动文件时,文件会从磁盘加载到内存,由CPU对文件的数据和代码进行运算。但…

04性能监控与调优篇(D1_学习前言)

目录 一、引言 二、基本介绍 三、JVM基础 1. java堆 2. 垃圾回收 3. STW 四、调优层次 五、调优指标 六、JVM调优原则 1. 优先原则 2. 堆设置 3. 垃圾回收器设置 1> GC 发展阶段 2> G1的适用场景 3> 其他收集器适⽤场景 4. 年轻代设置 5. 年⽼代设置 …

系统思考—慢就是快

“所有成长,都是一个缓慢渗透的过程,回头看,才发现自己已经走了很远。” —— 余秋雨 这让我想起一个最近做的项目。和一家公司合作,他们的管理模式一直陷入困境,员工积极性低,领导层的决策效率也不高。刚…

String常量池(2)

大家好,今天我们继续学习String常量池,昨天我们已经做了一个介绍,相信大家✓String常量池有了一定了解,那么就来看看它的应用。 字符串常量地(String Table). 字常量她在IVM中是StringTable类,实际是一个固定大小的 HashTable(一…

LabVIEW显微镜成像偏差校准

在高精度显微镜成像中,用户常常需要通过点击图像的不同位置,让电机驱动探针移动到指定点进行观察。然而,在实际操作中,经常会遇到一个问题:当点击位于图像中心附近的点时,探针能够相对准确地定位&#xff1…

Typora“使用”教程

文章目录 零、Typora简介一、下载并安装Typora二、修改License文件三、每次启动第一个Typora时,总弹出Activate窗口四、去除软件左下角未Activate提示五、参考文章 零、Typora简介 Typora 是一款由 Abner Lee 开发的轻量级 Markdown 编辑器,与其他 Mark…

【scikit-multiflow】使用 scikit-multiflow 的流数据生成器生成概念漂移数据流

说在前面 scikit-multiflow 是一个专注于多流学习(multi-stream learning)的Python库,它为数据流挖掘和在线学习提供了丰富的工具集。这个库的设计灵感来源于著名的scikit-learn,旨在为研究人员和从业者提供一个易于使用且功能强…

计算机视觉-局部特征

一、局部特征 1.1全景拼接 先用RANSAC估计出变换,就可以拼接两张图片 ①提取特征 ②匹配特征 ③拼接图像 1.2 点的特征 怎么找到对应点?(才能做点对应关系RANSAC) :特征检测 我们希望找到的点具有的特征有什么特…

matlab下载安装图文教程

【matlab介绍】 MATLAB是一款由美国MathWorks公司开发的专业计算软件,主要应用于数值计算、可视化程序设计、交互式程序设计等高科技计算环境。以下是关于MATLAB的简要介绍: MATLAB是MATrix LABoratory(矩阵实验室)的缩写&#…

Whisper+T5-translate实现python实时语音翻译

1.首先下载模型,加载模型 import torch import numpy as np import webrtcvad import pyaudio import queue import threading from datetime import datetime from faster_whisper import WhisperModel from transformers import AutoTokenizer, AutoModelForSeq2…

Python微博动态爬虫

本文是刘金路的《语言数据获取与分析基础》第十章的扩展,详细解释了如何利用Python进行微博爬虫,爬虫内容包括微博指定帖子的一级评论、评论时间、用户名、id、地区、点赞数。 整个过程十分明了,就是用户利用代码模拟Ajax请求,发…

爬虫实战:利用代理ip爬取推特网站数据

引言 亮数据-网络IP代理及全网数据一站式服务商屡获殊荣的代理网络、强大的数据挖掘工具和现成可用的数据集。亮数据:网络数据平台领航者https://www.bright.cn/?promoRESIYEAR50/?utm_sourcebrand&utm_campaignbrnd-mkt_cn_csdn_yingjie202502 在跨境电商、社…