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

初识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…...

卷积神经网络的剪枝及其在嵌入式视觉系统中的应用

卷积神经网络的剪枝及其在嵌入式视觉系统中的应用 摘要 在过去的十年里&#xff0c;计算机视觉的最新技术一直是由深度神经网络&#xff0c;特别是卷积神经网络所控制的。无论是分类、语义分割还是目标检测&#xff0c;神经网络现在都是一个无可争议的首选。因此&#xff0c;…...

Spring IOC - Bean的初始化

在bean的初始化阶段&#xff0c;bean已经被实例化及属性填充了&#xff0c;此时的bean已相对成熟&#xff0c;接下来的初始化阶段还会做一些额外的工作对bean做进一步处理&#xff0c;主要包括以下四个方面&#xff1a; 调用aware接口方法 初始化前&#xff1a;调用初始化前的…...

Golang 安装

学习目标 本文旨在帮助初学者了解 Golang 在不同环境下的安装方法,并提供相关资源和参考链接。 学习内容 安装 Golang on Windows 下载 Golang for Windows 安装包,地址:https://golang.org/dl/双击运行安装包,按照提示完成安装。配置环境变量: 在系统变量中添加 GOROO…...

( 位运算 ) 338. 比特位计数 ——【Leetcode每日一题】

❓338. 比特位计数 难度&#xff1a;简单 给你一个整数 n &#xff0c;对于 0 < i < n 中的每个 i &#xff0c;计算其二进制表示中 1 的个数 &#xff0c;返回一个长度为 n 1 的数组 ans 作为答案。 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;[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&#xff08;调试&#xff09;级别用于输出调试信息&#xff0c;这些信息主…...

gunicorn常用参数命令

Gunicorn 是一个 Python 的 WSGI HTTP 服务器。具有实现简单,轻量级,高性能等特点。更多介绍内容参考官网&#xff0c;这里介绍几个常用参数。 安装 pip3 install gunicorn通过输入gunicorn -v查看版本。 最简洁的启动。首先进入到项目目录&#xff0c;例如django项目和mana…...

TimerResolution.exe

TimerResolution.exe是一款常用的Windows实用程序,用于调整系统计时器的分辨率。它提供了一种简便的方法,让用户能够更精确地控制计时器的运行方式,从而改善系统的性能和响应时间。无论是进行游戏、音频处理还是其他需要精确计时的任务,TimerResolution.exe都能提供极大的帮…...

Qt魔法书:打造自定义鼠标键盘脚本

Qt魔法书&#xff1a;打造自定义鼠标键盘脚本 一、引言&#xff08;Introduction&#xff09;1.1 脚本的重要性&#xff08;Importance of Scripts&#xff09;1.2 Qt在脚本制作中的优势&#xff08;Advantages of Qt in Script Making&#xff09;1.3 文章目标与结构概述&…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...