初识redis【redis的安装使用与卸载】
一.redis的概念
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。在redis官网中对redis的描述是这样的(Redis is an open source (BSD licensed), in-memory data structure store used as a database, cache, message broker, and streaming engine. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions, and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.)我们可以提取其中的关键点:redis是基于opensource,遵守BSD协议,使用c语言编写的key-value形式存储数据,存储在内存中的数据库,并且redis支持持久化的数据储存
二.redis的作用和优势
我们知道当前市场中主流的数据库是MySQL,我们思考以下几个问题:redis 和MySQL有怎样的关系?MySQL在当前市场的局限在哪?redis相对于MySQL具有怎样的优势?
我们对比一下MySQL和redis:
在高并发的市场环境下,MySQL对数据的处理逐步进入瓶颈期,它无法在及时处理巨量的数据,在某些应用场景无法满足用户的需求,redis相对于MySQL,首先从硬件方面进行对比:MySQ的数据存储在硬盘中,而redis中的数据存储在内存中,因此,redis对于数据的读取具有更快的速度,从存储结构上来看,redis使用key-value的形式存储数据,查询数据具有更高的效率;从数据库类型来看,与MySQL的关系型数据库(RDBMS)不同,redis是NOSQL类型的数据库。
通过两者的对比,我们对redis的作用和优势进行概括性描述:
redis作用
1.redis提供分布式缓存技术,是挡在mysql之前的带刀护卫(减少MySQL处理数据的压力)(当请求发送给数据库时,在请求到达MySQL之前会先到达redis,在redis中查询数据是否存在,如果在redis中存在就直接返回,不通过MySQL,redis中不存在则去MySQL中查询,在MySQL中查询成功后返回数据,同时将数据也加载到redis中,下一次的请求直接在redis中获取数据)
2.redis支持内存存储和持久化(RDB+AOF),redis支持异步将内部中的数据写到硬盘上,同时不影响继续服务(当redis发生断电等异常情况,从硬盘中加载数据,不再通过MySQL)。
3.提供高可用的架构搭配,如单机,主从,哨兵,集群等等
4.为缓存穿透、击穿和雪崩提供解决方案
5.提供分布式锁
6.队列
Reids提供list和set操作,这使得Redis能作为一个很好的消息队列平台来使用。
我们常通过Reids的队列功能做购买限制。比如到节假日或者推广期间,进行一些活动,对用户购买行为进行限制,限制今天只能购买几次商品或者一段时间内只能购买一次。也比较适合适用。
7.排行榜+点赞
在互联网应用中,有各种各样的排行榜,如电商网站的月度销量排行榜、社交APP的礼物排行榜、小程序的投票排行榜等等。Redis提供的zset数据类型能够快速实现这些复杂的排行榜。比如小说网站对小说进行排名,根据排名,将排名靠前的小说推荐给用户
redis的优势:
- 性能极高 -Redis能读的速度是110000次/秒,写的速度是81000次/秒
- Redis数据类型丰富,不仅仅支持简单的key-value类型的数据,同时还提供list,zset,set,hash等数据结构的存储
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
- Redis支持数据的备份,即master-slave模式的数据备份
- 生成dump.rpb文件(可以在配置文件中改) 默认生成在redis.conf同级目录

三.redis7新特性
四.redis的使用
我们在此处所说的redis的使用是Linux环境下的使用
4.1redis的安装
1.redis的安装需要在64位的centos运行环境,因此使用以下指令,测试我们centos的环境
getconf LONG_BIT 结果返回32就代表32位,返回64就代表64位
2.redis需要在安装依赖于gcc的编译环境,我们使用以下指令进行测试:
gcc -v 查看gcc版本
yum -y install gcc-c++ 安装c++库环境
.3.将此前下载的redis-7.0.11.tar.gz(当然你下载的可能是其他版本)直接拖入到Linux中的/opt文件夹中(一般放入/opt文件夹,该文件夹是自定义文件夹)是,之后解压文件夹
tar -zxvf redis-7.0.11.tar.gz /opt目录下解压
在解压文件夹之后会生成这样一个redis-7.0.11这样一个文件目录:

在解压之后进入文件目录内:
cd redis-7.0.11
安装redis
make && make install
进入默认的安装目录内并且查看与redis相关的文件
cd /usr/local/bin #进入安装的默认文件夹
ll #查看当前目录下的文件及目录
能观察到以下与redis相关的文件结果:

4.重新切回到redis -7.0.11这个文件目录下,创建myredis 的文件目录,并将redis-7.0.11的文件目录下的redis.conf这个文件复制到myredis的文件目录下(因为我们要对配置文件进行修改,所以最好要对原来的配置文件进行保存)
mkdir /myredis #在redis-7.0.11目录下创建myredis的文件目录
cp redis.conf /myredis/redis7.conf #将默认的配置文件复制过去
5.对复制的配置文件进行修改:
在底行模式下使用/+关键字的方式进行对配置文件的特定内容进行搜索,锁定到特定内容之后将该内容进行修改:
示例:
vim /myredis/redis7.conf
// linux在vim中搜索词 esc + /搜索词 + enter
6.修改redis.conf配置文件,改完后确保生效,一定要记得重启redis服务器
1.默认daemonize no 改为 daemonize yes
2.默认protected-mode yes 改为 protected-mode no
3.默认bind 127.0.0.1 改为 直接注释掉(默认bind 127.0.0.1只能本机访问)或改成本机IP地址,否则影响远程IP连接
4.添加redis密码 改为 requirepass 你自己设置的密码


7.启动redis服务器和客户端
redis-server /root/opt/redis-7.0.11/myredis/redis7.conf #启动服务
为什么要从根目录开始使用呢?因为如果我们从当前目录开始使用可能会报找不到文件或者目录的错误(亲测)
ps -ef | grep redis | grep -v grep #测试是否启动成功
测试结果:
8.连接服务
redis-cli -a 设置的密码 -p 6379
ping 测试 得到 pong执行第一行的 redis 有一个warning警告 下面指令可以不展示警告
redis-cli -a 设置的密码 -p 6379 2>/dev/null
4.2redis的使用(永远的helloworld)
输入以下的代码:
set k1 helloWorld
OK
get k1
"helloWorld"
4.3redis的关闭
关闭服务
Linux redis 里: shutdown 直接关闭
单实例远程关闭 : redis-cli -a 密码 shutdown
多实例远程关闭,指定端口号关闭: redis-cli -p 6379 shutdown
4.4redis的卸载
卸载redis
ls -l /usr/local/bin/redis-* 查看所以redis文件
rm -rf /usr/local/bin/redis-* 删除全部文件
相关文章:
初识redis【redis的安装使用与卸载】
一.redis的概念 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。在redis官网中对redis的描述是这样的&#…...
接口测试总结及其用例设计方法整理,希望可以帮到你
目录 接口测试的总结文档 第一部分: 第二部分: 接口测试用例设计 接口测试的总结文档 第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。但该部分只交代了怎么做…...
基于FPGA的多功能数字钟的设计
摘要 数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,是人们日常 生活中不可少的必需品。本文介绍了应用FPGA芯片设计多功能数字钟的•种方 案,并讨讨论了有关使用FPGA芯片和VHDL语言实现数字钟设计的技术问题。 关键词数字钟、分频器、译码器、计数器、校时电路、…...
第四十二天学习记录:C语言进阶:笔试题整理Ⅲ
问:解释一下int(*a[20])(int)是什么? ChatAI答: int (*a[20])(int) 是一个数组,该数组中每个元素都是一个指向函数的指针,该函数具有一个int类型的参数,并返回一个int类型的值。 具体来说,a是一…...
GLSL 代码规范
文件 文件顶点,片段,几何和计算着色器文件应该分别有 _vert, _frag, geom 和 _comp 后缀(例如: eevee_film_fragg.glsl)。Shader文件名必须是唯一的,并且必须以它们所属的模块作为前缀(例如: workbench_material_lib.glsl eevee_film_lib.glsl)。一个 shader 文件必须包含且…...
红黑树封装map和set
文章目录 红黑树封装map和set1. 改良红黑树1.1 改良后的节点1.2 改良后的类分别添加仿函数代码 3. 封装map和set3.1 set3.2 map 3. 迭代器3.1 begin 和 end3.2 operator()和operator--()3.3 const迭代器set的迭代器map的迭代器 4. map的operator[]的重载5. 完整代码实现5.1 RBT…...
python序列
在Python中,序列类型包括字符串、列表、元组、集合和字典,这些序列支持以下几种通用的操作,但比较特殊的是,集合和字典不支持索引、切片、相加和相乘操作。 字符串也是一种常见的序列,它也可以直接通过索引访问字符串内…...
LeetCode35. 搜索插入位置(二分法入门)
写在前面: 题目链接:LeetCode35. 搜索插入位置 编程语言:C 题目难度:简单 一、题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会…...
macOS Ventura 13.4 RC3(22F66)发布
系统介绍 5 月 17 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.4 RC 3 更新(内部版本号:22F66),本次更新距离上次发布隔了 5 天。 macOS Ventura 带来了台前调度、连续互通相机、FaceTime 通话接力等功能。其中&…...
CSI和DSI介绍
1、CSI和DSI的接触协议介绍 MIPI、CSI、CCI 协议基础介绍_csi协议_赵哈哈x的博客-CSDN博客 流媒体技术基础-摄像头接口与标准_【零声教育】音视频开发进阶的博客-CSDN博客 《摄像头 —— MIPI CSI-2简介》 USB摄像头使用 — Lichee zero 文档 2、AIO-3288J ,and…...
vue3+antDesignVue前端纯导出
效果 <a-buttonsize"default"style"margin-left: 10px"click"exportData">导出</a-button>1.下载所需依赖 npm install xlsx --save npm install file-saver --save<script setup> import { reactive, ref } from "vue…...
卷积神经网络的剪枝及其在嵌入式视觉系统中的应用
卷积神经网络的剪枝及其在嵌入式视觉系统中的应用 摘要 在过去的十年里,计算机视觉的最新技术一直是由深度神经网络,特别是卷积神经网络所控制的。无论是分类、语义分割还是目标检测,神经网络现在都是一个无可争议的首选。因此,…...
Spring IOC - Bean的初始化
在bean的初始化阶段,bean已经被实例化及属性填充了,此时的bean已相对成熟,接下来的初始化阶段还会做一些额外的工作对bean做进一步处理,主要包括以下四个方面: 调用aware接口方法 初始化前:调用初始化前的…...
Golang 安装
学习目标 本文旨在帮助初学者了解 Golang 在不同环境下的安装方法,并提供相关资源和参考链接。 学习内容 安装 Golang on Windows 下载 Golang for Windows 安装包,地址:https://golang.org/dl/双击运行安装包,按照提示完成安装。配置环境变量: 在系统变量中添加 GOROO…...
( 位运算 ) 338. 比特位计数 ——【Leetcode每日一题】
❓338. 比特位计数 难度:简单 给你一个整数 n ,对于 0 < i < n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n 1 的数组 ans 作为答案。 示例 1: 输入:n 2 输出:[0,1,…...
Unity之新版输入系统InputSystem入门
一.前言 最近Unity版本全面升级到Unity2021了,着色器也全面使用URP,接下来毫无疑问,输入系统也要全面升级InputSystem,这也是Unity官方希望我们做的,毕竟现在都2023年了,我们的技术是需要跟上时代的步伐。 二.新老版本区别 老版本的InputSysten系统,其实就一个Input静…...
python 之 logging的使用
一、日志模块 import logginglogging.debug("调试日志") logging.info(消息日志) logging.warning("告警日志") logging.error(错误日志) logging.critical(严重错误日志)debug(调试)级别用于输出调试信息,这些信息主…...
gunicorn常用参数命令
Gunicorn 是一个 Python 的 WSGI HTTP 服务器。具有实现简单,轻量级,高性能等特点。更多介绍内容参考官网,这里介绍几个常用参数。 安装 pip3 install gunicorn通过输入gunicorn -v查看版本。 最简洁的启动。首先进入到项目目录,例如django项目和mana…...
TimerResolution.exe
TimerResolution.exe是一款常用的Windows实用程序,用于调整系统计时器的分辨率。它提供了一种简便的方法,让用户能够更精确地控制计时器的运行方式,从而改善系统的性能和响应时间。无论是进行游戏、音频处理还是其他需要精确计时的任务,TimerResolution.exe都能提供极大的帮…...
Qt魔法书:打造自定义鼠标键盘脚本
Qt魔法书:打造自定义鼠标键盘脚本 一、引言(Introduction)1.1 脚本的重要性(Importance of Scripts)1.2 Qt在脚本制作中的优势(Advantages of Qt in Script Making)1.3 文章目标与结构概述&…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
Canal环境搭建并实现和ES数据同步
作者:田超凡 日期:2025年6月7日 Canal安装,启动端口11111、8082: 安装canal-deployer服务端: https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz cd /opt/homebrew/etc mkdir canal…...





