Redis7【① 概述 安装 配置】

news2025/1/16 4:44:59

1. Redis入门概述

1. Redis是什么

Redis全称 远程字典服务器(Remote Dictionary Server),它是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的基于内存的Key-Value数据库,提供了丰富的数据结构,例如String、Hash、List、Set、SortedSet等等。数据时存在内存中的,同时Redis支持事务、持久化、LUA脚本、发布/订阅、缓存淘汰、流技术等多种功能特性,提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案。

2. Redis与MySQL的关系

Redis是key-value数据库(NoSQL一种),mysql是关系数据库。
Redis数据操作主要在内存,而mysql主要存储在磁盘。
Redis在某一些场景使用中要明显优于mysql,比如计数器、排行榜等方面。
Redis通常用于一些特定场景,需要与Mysql一起配合使用。
两者并不是相互替换和竞争关系,而是共用和配合使用。

按照二八原则,主流的应用对系统的请求80%都是查询,20%是增删改。客户端查询数据先查询Redis数据库,如果命中了则将查询结果返回,如果没有命中再去MySQL数据库查询,然后将数据返回并且将数据写入Redis数据库,下次再查询该数据时就可以从Redis数据库中获取。如图2-1所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uZRqW8ux-1687777480307)(img/Redis与MySQL的关系.png)]

3. Redis能干什么

  • 缓存

    Redis常用于作为高速缓存,将常用的数据存储在内存中,提高访问速度和响应时间,减轻后端数据库的压力。Redis支持多种数据结构,可以根据数据的类型和特点选择合适的数据结构进行缓存。

  • RDB和AOF持久化

    redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务。

    即使设备断电了,数据也不会丢失,重启后重新从硬盘恢复数据。

  • 高可用架构搭配:单机、主从、哨兵、集群

    支持大规模数据存储和高并发访问。

  • 解决缓存穿透、击穿、雪崩

    1. 对查询不存在的数据的请求进行过滤,比如采用 Bloom Filter 进行缓存预热或者对查询请求进行缓存穿透保护。
    2. 对于热点数据的访问,可以采用分布式锁等方法对缓存进行保护,避免缓存击穿。
    3. 对于缓存雪崩,可以采用缓存预热、缓存过期时间随机化、缓存数据的多级缓存等方法进行缓解。
  • 分布式锁

    Redis支持原子操作和过期时间等特性,可以用于实现分布式锁。

    可以保证在分布式系统中同一时刻只有一个客户端可以持有锁,从而保证共享资源的互斥访问。

    例如,可以使用Redis的SETNX命令实现基于key的锁,使用Lua脚本实现基于value的锁。

  • 消息队列

    redis提供了多种队列模式:List队列、Pub/Sub队列、Stream队列

  • 计数器和排行榜

    Redis支持原子操作,可以用于实现计数器和排行榜功能。

    例如,可以使用Redis的INCR命令实现计数器功能,使用ZADD命令实现有序集合排行榜功能。

除了以上几个方面,Redis还可以用于实现限流、地理位置服务、实时统计等应用场景。总之,Redis是一个功能丰富、性能优秀的内存数据库,适合于需要高性能、高可用、高并发的应用场景。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u3WTukwT-1687777480308)(img/Redis功能概述.jpg)]

4. Redis优势

  • 性能极高 -Redis能读的速度是110000次/秒,写的速度是81000次/秒
  • Redis数据类型丰富,不仅仅支持简单的key-value类型的数据,同时还提供list,zset,set,hash等数据结构的存储
  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
  • Redis支持数据的备份,即master-slave模式的数据备份
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kktzXkYS-1687777480308)(img/Redis总结.jpg)]

2. Redis的安装和配置

Redis官网下载地址:https://redis.io/download/
Redis官方中文文档:https://www.redis.com.cn/documentation.html
Redis命令使用手册官方版:https://redis.io/commands/
Redis命令使用手册中文版:http://www.redis.cn/commands.html
Redis命令参考手册:http://doc.redisfans.com/

Redis版本第二位数字如果是偶数,就是稳定版,如果是奇数,就是激进版

在这里插入图片描述

(1) 检测Linux安装环境

​ Linux环境安装Redis必须先具备gcc编译环境,gcc是linux下的一个编译程序,是C程序的编译工具。

gcc -v	# 查看是否安装了gcc
yum -y install gcc-c++	# 若是没有安装可以使用此命令安装

(2) 下载redis

​ 下载redis-7.0.10.tar.gz,下载后使用工具将它传到Linux系统的/opt目录下,然后解压。对于第三方软件,一般都安装在/opt目录下。

tar -zxvf redis-7.0.10.tar.gz	# 解压到当前目录

(3) 安装redis

​ 这里是redis的安装目录,进入解压目录执行make命令先编译后安装

cd redis-7.0.10	# 切换到解压目录
make	# 编译
make install	# 安装

(4) 查看redis服务安装目录

​ 这里是redis服务的安装目录,redis服务默认安装目录在/usr/local/bin

​ 装在这个目录下的文件,相当于配置了PATH变量,在任何目录都可以启动redis服务。

​ Linux下的/usr/local类似windows系统的C:\Program Files。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OiljKWKz-1687777716434)(img/bin-ll.png)]

redis-benchmark:性能测试工具
redis-check-aof:修复有问题的aof文件
redis-check-dump:修复有问题的rdb文件
redis-cli:redis提供的命令行客户端
redis-sentinel:redis的哨兵启动脚本
redis-server:redis的服务端启动脚本

(5) 修改配置文件

​ 回到解压目录,对redis.conf文件进行修改

​ 修改配置文件前,先对文件进行备份

mkdir /myredis	#创建目录
cp redis.conf /myredis/redis7.conf	# 将配置文件复制到myredis目录并命名为redis7.conf

​ 修改redis.conf配置文件,改完后确保生效,记得重启,记得重启

  1. 默认daemonize no 改为 daemonize yes,表示开启后台启动
  2. 默认protected-mode yes 改为 protected-mode no,需要别人来连接redis服务器的话需要改成no
  3. 默认bind 127.0.0.1 直接注释掉(默认bind 127.0.0.1只能本机访问)或改成主机IP地址,否则影响远程IP连接
  4. 添加redis密码,配置 requirepass 123456 即可(123456为设置的密码)

(6) 启动redis服务

​ 启动配置文件,redis-server直接启动是前台启动,后面加上配置文件启动是后台启动。

​ 任意目录输入redis-server都可以直接启动redis服务。

不过这样启动redis需要一直处在这个界面,也就是前台启动,不能进行其他操作,我们希望它在后台运行,后台启动需要指定配置文件

redis-server /opt/redis-7.0.10/redis.conf	# 指定配置启动:后台启动redis服务
ps -ef | grep redis		# 通过则个指令可以查看正在运行的redis服务

在这里插入图片描述

(7) 连接redis服务

​ 通过redis的redis-cli可执行程序来连接redis服务

redis-cli -a 123456 -p 6379	# -a表示输入密码,-p表示端口号,本机访问可以省略不写,默认是6379
ping	# 输入ping后回车输出pong说明连接成功
set key1 helloworld		# 设置键key1的值为helloworld
get key1		# 获取key1的值
quit	# 输入quit回车退出前台客户端,服务并没有退出

也可以不输入 -a 然后输入密码,可以直接进去 输入 auth 【密码】进行登录验证

​ 也可以直接执行redis-cli,然后在redis客户端命令行输入auth 密码

(8) 停止redis服务

​ 利用redis-cli来执行 shutdown 命令停止 Redis 服务,因为之前配置了密码,因此需要通过 -u 来指定密码

# 单实例关闭
redis-cli -u 123456 shutdown 	
#多实例关闭,指定端口关闭
redis-cli -p 6379 shutdown
# 也可以使用   kill -9 进程号  终止对应的进程

​ 如果是在redis的客户端窗口,可以直接使用shutdown命令关闭redis服务

​ 可以看到,执行shutdown命令后就显示notconnected,然后使用quit命令退出redis客户端即可。

(9) redis卸载

ls -l /usr/local/bin/redis-*
rm -rf /usr/local/bin/redis-*

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

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

相关文章

基于VMD-SSA-LSTM的多维时序光伏功率预测MATLAB程序

基于VMD-SSA-LSTM的多维时序光伏功率预测MATLAB程序资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87950148参考文献: 《基于VMD-SSA-LSSVM的短期风电预测》 《基于改进鲸鱼优化算法的微网系统能量优化管理》 主要内容: 融合了两…

计算机毕业论文内容参考|基于Android的国际酒店预订APP的设计与实现

文章目录 导文摘要:前言:绪论:课题背景国内外现状与趋势课题内容相关技术与方法介绍:系统分析:系统设计:系统实现:系统测试:本文总结后续工作展望导文 计算机毕业论文内容参考|基于Android的国际酒店预订APP的设计与实现 摘要: 随着人们生活水平的提高和旅游业的迅速…

黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页

目录 一、建立数据库: 二、连接数据库: 三、获取所有的列表 四、实现分页 五、实现列表页和详细页的绑定 六、项目难点 一、建立数据库: 1.adminss表 2.columnss表设计及内容 3.messagess表设计及内容 二、连接数据库: 文件中A…

智能风扇语音控制新方案,高品质语音识别芯片NRK3303

随着人工智能技术的发展,人们可以使用语音助手随时随地进行语音控制电子设备。而针对风扇这种家居电器,智能语音控制的方案相对成熟,受到了越来越多用户的青睐。为了更好地提升用户体验,新一代智能风扇方案引进了语音识别芯片技术…

maven 导入本地jar、maven 安装本地jar

方式一、 将jar放入本地任意目录(不推荐) pom.xml <!-- groupId&#xff1a;cn.myCompany.myCommon 规则&#xff1a;公司性质.公司名.项目名或其它artifactId&#xff1a;jar包 自定义ID&#xff0c;通常与jar包名同名&#xff1b;pom通过groupIdartifactIdversion找到mav…

chatgpt赋能python:Python虚拟环境管理:让你的项目更加独立和可靠

Python虚拟环境管理&#xff1a;让你的项目更加独立和可靠 什么是Python虚拟环境? Python虚拟环境&#xff08;Virtual Environment&#xff09;是一种Python环境隔离的机制&#xff0c;它可以让你在同一个操作系统上创建多个Python环境&#xff0c;互不干扰。这意味着你可以…

【MATLAB第48期】基于MATLAB的REMR-LSTM多次循环递归拓展理论的长短期记忆网络LSTM回归预测模型,PCA预处理降维

【MATLAB第48期】基于MATLAB的REMR-LSTM多次循环递归拓展理论的长短期记忆网络LSTM回归预测模型&#xff0c;PCA预处理降维 在本文中&#xff0c;将展示一个使用多次循环递归拓展&#xff08;REMR&#xff09;理论来改进LSTM回归预测问题。 通过多次循环&#xff0c;优化训练集…

Linux下的tmux的使用

0.前言 您好&#xff0c;这里是limou3434&#xff0c;本次我将给您带来Linux下tmux的使用。 如果您感兴趣也可以看看我的其他内容。 1.tmux的基础概念 tmux是一款在Linux里运行在终端上的软件&#xff0c;可以使得终端具有强大的多任务管理功能&#xff08;以下是在Ubuntu环…

如何做好迭代回顾 1/4

迭代回顾(Retrospective)、二八原则、五个“为什么”(5 Why)、以数据说话、三点估算(PERT)等&#xff0c;大家都可能听过&#xff0c;在网上也能找到相关理论知识&#xff0c;但很多软件开发团队自以为了解&#xff0c;但其实是有误解。“如何做好迭代回顾”会利用一些实际团队…

Linux Mint 21.2 “Victoria “的测试版即将到来

导读Linux Mint 21.2 “Victoria “几乎已经准备就绪&#xff0c;主要开发者Clement Lefebvre证实&#xff0c;开发周期已经结束&#xff0c;这意味着测试版应该很快就会到来。 Linux Mint 21.2是Linux Mint 21系列的第二次更新&#xff0c;它基于Ubuntu 22.04 LTS&#xff08;…

Mybatis源码篇:Mybatis初始化过程分析

文章目录 1. Mybatis初始化过程简述2. Mybatis初始化源码分析2.1 Mybatis初始化时序图2.2 源码分析2.2.1 SqlSessionFactoryUtil测试类代码2.2.2 SqlSessionFactoryBuilder源码2.2.3 XMLConfigBuilder源码2.2.4 SqlSessionFactory相关属性2.2.5 SqlSession相关属性 3. 总结4. 使…

2:PCIe Header配置空间

目录 1.概述 2.Header Type0 2.1 HeaderType字段 2.2 Class寄存器 2.3 Cache Line Size 寄存器 2.4 Subsystem ID 和 Subsystem Vendor ID 寄存器 2.5 Capabilities Pointer 寄存器 2.6 Interrupt Line 寄存器 2.7 Interrupt Pin 寄存器 2.8 Base Address Registe…

el-select如何不显示value,显示value对应的label值

文章目录 select 显示如下发生错误的原因 select 显示如下 el-select在编辑调用的时候一直显示的不是label值&#xff0c;而是本身的value值。尝试了很多种方法&#xff0c;都没有解决。 正常的形式 错误的形式 发生错误的原因 显示不正常&#xff0c;多数是由于得到的数据…

人工智能期末复习(背题家的落幕)

文章目录 一、前言二、选择题&#xff08;10 X 2&#xff09;1、补充2、第一梯队⭐⭐⭐3、第二梯队⭐⭐4、第三梯队⭐ 三、判断题&#xff08;10 X 1&#xff09;1、错误的2、正确的 四、程序填空题&#xff08;10 X 3&#xff09;1、tensorflow搭建模型2、keras模型编译3、Pyt…

AI智慧安监视频融合平台EasyCVR播放HLS流出现报错404是什么原因?

EasyCVR平台支持多协议与多类型设备接入&#xff0c;具体包括国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等&#xff0c;能对外分发RTMP、RTSP、HTTP-FLV、WS-FLV、HLS、WebRTC等。平台既具备传统安防视频监控的能力&#xff0c;也能接入AI智能分析的…

【强化学习】什么是“强化学习”

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

MySQL的存储过程

MySQL 一、存储过程的概念存储过程的优点 二、创建简单的存储过程三、存储过程的参数IN 输入参数OUT 输出参数INOUT 输入输出参数 四、删除存储过程五、存储过程的控制语句条件语句循环语句 一、存储过程的概念 存储过程是一组为了完成特定功能的SQL语句。 存储过程再使用过程…

安装rabbitmqctl问题

RabbitMQ Server 311.18 Setup bat start xited with code 1. 主要对应得erlang版本不对&#xff08;注意 安装过程中一定要对应指定版本&#xff0c;尽量装低一版本&#xff0c;并且erlang选择中间版本&#xff09; RabbitMQ Erlang Version Requirements — RabbitMQ

adb shell后,getevent退出方法

adb shell后&#xff0c;getevent退出方法 输入 exit 然后回车退出

使用 Debian、Docker 和 Nginx 部署 Web 应用

前言 本文将介绍基于 Debian 的系统上使用 Docker 和 Nginx 进行 Web 应用部署的过程。着重介绍了 Debian、Docker 和 Nginx 的安装和配置。 第 1 步&#xff1a;更新和升级 Debian 系统 通过 SSH 连接到服务器。更新软件包列表&#xff1a;sudo apt update升级已安装的软件…