初识redis【redis的安装使用与卸载】

news2024/11/25 20:27:30

一.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-*             删除全部文件

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

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

相关文章

MADDPG-学习笔记(1)

文献链接:https://arxiv.org/abs/1706.02275 "Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments"(作者:Lowe, Ryan等人,2017年) 环境搭建:https://zhuanlan.zhihu.co…

【保姆级教程】Windows安装CUDA及cuDNN

Windows安装CUDA及cuDNN 前言1. 第一次安装CUDA2. 第N次安装CUDA 一、 CUDA1. 查询CUDA版本2. 下载CUDA3. 安装CUDA4. 配置CUDA环境变量5. 检查CUDA是否安装成功 二、 cuDNN1. cuDNN版本的查询及下载2. 安装cuDNN3. 配置cuDNN的环境变量4. 检查cuDNN是否安装成功 三、查询CUDA及…

Linux常见指令理解

查看 Linux 主机 ip 在终端下敲 ssh[ip] ip 为刚才看到的 ifconfig 结果. 如果网络畅通, 将会提示输入用户名密码. 输入即可正确登陆 XShell 下的复制粘贴 复制: ctrl insert (有的 insert 需要配合 fn 来按) 粘贴: shift insert ctrl c / ctrl v 是不行的. Linu…

【C语言刷题——Leetcode10道简单题】

✨作者:平凡的人1 ✨专栏:《小菜鸟爱刷题》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 今天是考四六级的日子,不知道大家考得怎么样呀?(反正我是寄了,好多没明…

Vue CLI ref props mixin plugin scoped

3.2. ref 属性 ref被用来给元素或子组件注册引用信息&#xff08;id的替代者&#xff09; 应用在html标签上获取的是真实DOM元素&#xff0c;应用在组件标签上获取的是组件实例对象vc使用方式 打标识&#xff1a;或获取&#xff1a;this.$refs.xxx <template> <di…

Python依据某一文件夹中大量文件的名称复制另一文件夹中的同名文件

本文介绍基于Python语言&#xff0c;针对一个文件夹下大量的Excel表格文件&#xff0c;基于其中每一个文件的名称&#xff0c;从另一个文件夹中找到与这一文件夹中文件同名的文件&#xff0c;并将找到的同名文件复制到第三个文件夹中的方法。 首先&#xff0c;我们来明确一下本…

【网络】深入浅出了解网络世界

HTTP协议 TCP/IP协议族 我们通常使用的网络&#xff0c;是在TCP/IP协议族上运作的。而HTTP协议就是TCP/IP内部的一个子集。 计算机与网络设备之间的通讯需要一定的规则&#xff0c;这种规则就称为协议。 TCP/IP就是互联网上各种协议的总称。 分层管理 TCP/IP 按层次分为…

架构活动中评估需求的五个关注点

从架构活动的整体目标出发&#xff0c;确认需求存在的必要性。很多时候&#xff0c;尤其是大的项目&#xff0c;需求方经常会夹带私货。虽然他们并没有什么恶意&#xff0c;但是这些附加的需求不仅会消耗研发资源&#xff0c;还会增加项目复杂度和规划难度。而最坏的情况&#…

【王道·计算机网络】第四章 网络层【未完】

一、 概述和功能 1.1 网络层功能 主要任务&#xff1a;把分组从源端传到目的端&#xff0c;为分组交换网上的不同主机提供通信服务传输单位&#xff1a;数据报功能&#xff1a; 路由选择与分组转发&#xff0c;即选择最佳路径异构网络互联(依靠路由器)拥塞控制(所有结点都来不…

会议日程——2023第十二届中国PMO大会

2023第十二届中国PMO大会 主题&#xff1a;拥抱变革 展现PMO力量 主办方&#xff1a;PMO评论 签到与入场&#xff1a;人脸识别 时间&#xff1a;6月17-18日 地点&#xff1a;北京蓝调庄园 【邀 请 函】 企业要基业长青就必须持续保持组织活力。企业的内外部环境不会一成不…

Java --- redis实现分布式锁

目录 一、锁的种类 二、分布式锁具备的条件与刚需 三、springbootredisngnix单机实现案例 四、Nginx配置负载均衡 4.1、修改nginx配置文件 4.2、执行启动命令 4.3、启动微服务程序测试 五、使用redis分布式锁 5.1、方法递归重试 5.2、自旋方式 5.3、添加key过期时间&#xff0…

Vue3如何按需引入Element Plus以及定制主题色

1.首先使用指令进行安装 npm install element-plus --save 2.安装按需引入另外两个插件 npm install -D unplugin-vue-components unplugin-auto-import 3.在vite.config.js文件引入以下内容 import { fileURLToPath, URL } from node:urlimport { defineConfig } from vite i…

CloudFlare系列--自定义CDN节点的IP

原文网址&#xff1a;CloudFlare系列--自定义CDN节点的IP_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍CloudFlare如何手动指定CDN为CloudFlare的IP地址。 为什么手动指定CDN IP&#xff1f; 自选节点非常重要&#xff0c;原因如下&#xff1a; 国内访问不同CDN节点的速…

Linux vim光标移动/退出命令/撤退操作/文本查找 等命令大全

1 什么是vim&#xff1f; vim是Linux环境下一款强大、高度可定制的文本编辑工具。能够编辑任何的ASCII格式文件&#xff0c;对内容进行创建、查找、替换、修改、删除、复制、粘贴等操作。编写文件时&#xff0c;无需担心目标文件是否存在&#xff0c;若不存在则会自动在内存中…

老Q魔改MACD:拒绝大幅回撤,威力比原版强太多了!

看过老Q历史文章的股友都知道,MACD是一个非常经典且依旧奋战在第一线的顶流指标。我们之前也目前主流通用的参数版本在沪深300上做了回测,17年来获得了累计365%的收益。 然而,整个沪深300大盘在这17年里也涨了超过300%,也就是说,我们的策略也仅仅比拿着不动好上一丢丢而已…

JDK8中的新特性(Lambda、函数式接口、方法引用、Stream)

文章目录 1. Java8新特性&#xff1a;Lambda表达式1.1 关于Java8新特性简介1.2 冗余的匿名内部类1.3 Lambda 及其使用举例1.4 语法1.5 关于类型推断 2. Java8新特性&#xff1a;函数式(Functional)接口2.1 什么是函数式接口2.2 如何理解函数式接口2.3 举例2.4 Java 内置函数式接…

高压功率放大器在换流阀冷却系统均压电极结垢超声导波中的应用

实验名称&#xff1a;换流阀冷却系统均压电极结垢超声导波检测方法研究 研究方向&#xff1a;无损检测 测试目的&#xff1a; 为了探究超声导波检测的灵敏度&#xff0c;本文构建了换流阀冷却系统均压电极结垢检测模型&#xff0c;详细分析了不同厚度水垢与声波信号的交互过…

【c++】哈希---unordered容器+闭散列+开散列

1.unordered系列关联式容器 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到 logN&#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的节点非常多时&#xff0c;查询效率也不理想。最好的查询是&#xff0c;进…

FPGA开发基本流程详解

FPGA是一种可编程逻辑器件&#xff0c;与传统的硬连线电路不同&#xff0c;它具有高度的可编程性和灵活性。FPGA的设计方法包括硬件设计和软件设计两部分&#xff0c;硬件设计包括FPGA芯片电路、存储器、输入输出接口电路等等&#xff0c;软件设计则是HDL程序开发&#xff0c;以…

openCV 第四篇 角点检测、图像特征、图片拼接

本文原本打算直接简单介绍一下harris和sift&#xff0c;之后进行特征匹配&#xff0c;来一波图像拼接。 想来想去还是先介绍下原理吧&#xff0c;虽然没人看QAQ。可以直接点击右侧目录跳转到代码区。 本文可以完成&#xff1a; 角点检测 和 图像特征提取(就几行代码) 以及进…