Redis7【① 概述 安装 配置】

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 -a 123456 shutdown 	
#多实例关闭,指定端口关闭
redis-cli -a 123456 -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-*

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows无法启动RemoteDesktopServices服务(位于本地计算机上)。错误126:找不到指定的模块。

win10的搜索栏输入 注册表编辑器。打开,找到如下路径 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService\Parameters 将指定数值项ServiceDll的数值数据改成默认值: %SystemRoot%\System32\termsrv.dll 再重新尝试就好了。 …

Spring是什么?

目录 1、Spring的简介 2、Spring七大功能模块 3、Spring的优点 4、Spring的缺点 5、Sprig容器 6、Spring的生态圈(重点)***** 7、Spring中bean的生命周期 1、Spring的简介 Spring的英文翻译为春天,可以说是给Java程序员带来了春天&…

DAMA数据治理CDGA/CDGP认证考试备考经验分享

一,关于DAMA中国和CDGA/CDGP考试 国际数据管理协会(DAMA国际)是一个全球性的专业组织,由数据管理和相关的专业人士组成,非营利性机构,厂商中立。协会自1980年成立以来,一直致力于数据管理和数字…

Baumer工业相机堡盟工业相机如何通过BGAPISDK设置多帧采集模式(C#)

Baumer工业相机堡盟工业相机如何通过BGAPISDK设置多帧采集模式(C#) Baumer工业相机Baumer工业相机BGAPISDK和多帧采集模式的技术背景Baumer工业相机通过BGAPISDK设置多帧采集模式功能1.引用合适的类文件2.通过BGAPISDK设置多帧采集模式功能 Baumer工业相…

Wolfram Mathematica 13.3 特别版

WOLFRAM MATHEMATICA 全球現代技術計算的權威系統 MATHEMATICA 三十年來,Mathematica 定義了技術計算領域的最新技術—並為全球數百萬創新者、教育工作者、學生和其他人提供了主要的計算環境。 Mathematica 以其卓越的技術和簡易實用廣受讚譽,提供了單…

13.RocketMQ之消息的存储与发送

1. 消息存储 1.1 消息存储 分布式队列因为有高可靠性的要求,所以数据要进行持久化存储。 消息生成者发送消息Broker收到消息,将消息进行持久化,在存储中新增一条记录返回ACK给生产者Broker消息给对应的消费者,然后等待消费者返回A…

【MOOC 作业】第5章 链接层

不是标答也不是参考答案 仅从个人理解出发去做题 1、(20分) 在某网络中标识为 A 到 E 的 5 个结点以星形与一台交换机连接,考虑在该网络环境中某个正在学习的交换机的运行情况。假定:该交换机表初始为空。B 向 E 发送一个帧,此时交换机将该数…

[内核笔记1]内核文件结构与缓存——inode和对应描述

由来:公司内部外网记录日志的方式现在都是通过Nginx模块收到数据发送到系统消息队列,然后由另外一个进程来从消息队列读取然后写回磁盘这样的操作,尽量的减少Nginx的阻塞。 但是由于System/V消息队列在使用前需要规定消息长度,且…

自动驾驶专题介绍 ———— 激光雷达标定

文章目录 介绍激光雷达与激光雷达之间的外参标定激光雷达与摄像头的标定 介绍 激光雷达在感知、定位方面发挥着重要作用。跟摄像头一样,激光雷达也是需要进行内外参数标定的。内参标定是指内部激光发射器坐标系与雷达自身坐标系的转换关系,在出厂之前就已…

预训练、微调和上下文学习

最近语言模型在自然语言理解和生成方面取得了显著进展。这些模型通过预训练、微调和上下文学习的组合来学习。在本文中将深入研究这三种主要方法,了解它们之间的差异,并探讨它们如何有助于语言模型的学习过程。 预训练 预训练(Pre-training&…

计算机网络--网络传输基本概念

什么是IP地址? 在计算机出厂的时候,有一个唯一标识的物理地址。但是因为厂商不同等各种原因,用来标识一台计算机在网络中是比较麻烦的,于是出现了IP地址,IP地址是互联网协议地址的意思,是“Internet Protoc…

H.264帧结构和RTSP协议源码框架

目录 1、H264编码原理和基本概念 1.1、h.264编码原理 1.2、h.264编码相关的一些概念 2、H264的NAL单元详解 2.1、VCL和NAL的关系 2.2、H.264视频流分析工具 2.3、h264视频流总体分析 2.4、相关概念 3、H264的NAL单元---sps和pps 3.1、sps和pps详解 3.2、H264的profil…

InnoDB的三种行锁(提供具体sql执行案例分析)

InnoDB存储引擎有3种行锁的算法,其分别是: Record Lock(记录锁):单个行记录上的范围 (锁住某一行记录)Gap Lock(间隙锁):间隙锁,锁定一个范围,但不包含记录本…

人工智能(pytorch)搭建模型14-pytorch搭建Siamese Network模型(孪生网络),实现模型的训练与预测

大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型14-pytorch搭建Siamese Network模型(孪生网络),实现模型的训练与预测。孪生网络是一种用于度量学习(Metric Learning)和比较学习(Compariso…

基于深度学习的人脸面部表情识别系统【含Python源码+PyqtUI界面+原理详解】

功能演示 摘要:面部表情识别(Facial Expression Recognition)是一种通过技术手段识别人物图像中人脸面部表情的技术。本文详细介绍了其实现的技术原理,同时给出完整的Python实现代码、训练好的深度学习模型,并且通过Py…

GO语言使用最简单的UI方案govcl

接触go语言有一两年时间了。 之前用Qt和C#写过桌面程序,C#会被别人扒皮,极度不爽;Qt默认要带一堆dll,或者静态编译要自己弄或者找库,有的库还缺这缺那,很难编译成功。 如果C# winform可以编译成二进制原生…

商品减库在Redis中的运用

一.商品减库中存在问题 1.传统的代码 1.1引入jar包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.…

基于tensorflow深度学习的猫狗分类识别

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

机器学习之K-means聚类算法

目录 K-means聚类算法 算法流程 优点 缺点 随机点聚类 人脸聚类 旋转物体聚类 K-means聚类算法 K-means聚类算法是一种无监督的学习方法&#xff0c;通过对样本数据进行分组来发现数据内在的结构。K-means的基本思想是将n个实例分成k个簇&#xff0c;使得同一簇内数据相…

基于小程序的用户服务技术研究

目录 1. 小程序开发技术原理 2. 用户服务设计3. 数据库设计和管理4. 安全和隐私保护5. 性能优化和测试总结 关于基于小程序的用户服务技术研究&#xff0c;这是一个非常广泛和复杂的领域&#xff0c;需要涉及多个方面的知识和技术。一般来说&#xff0c;基于小程序的用户服务技…