title: Redis
author: Xoni
tags:

  • Redis
    categories:
  • java学习
  • Redis
    abbrlink: bae4ff13

Redis基础

1. Redis 简介

在这个部分,我们将学习以下3个部分的内容,分别是:

◆ Redis 简介(NoSQL概念、Redis概念)

◆ Redis 的下载与安装

◆ Redis 的基本操作

1.1 NoSQL概念

1.1.1 问题现象

在讲解NoSQL的概念之前呢,我们先来看一个现象:

(1)问题现象

每年到了过年期间,大家都会自觉自发的组织一场活动,叫做春运!以前我们买票都是到火车站排队,后来呢有了12306,有了他以后就更方便了,我们可以在网上买票,但是带来的问题,大家也很清楚,春节期间买票进不去,进去了刷不着票。什么原因呢,人太多了!

除了这种做铁路的,它系统做的不专业以外,还有马爸爸做的淘宝,它面临一样的问题。淘宝也崩,也是用户量太大!作为我们整个电商界的东哥来说,他第一次做图书促销的时候,也遇到了服务器崩掉的这样一个现象,原因同样是因为用户量太大!

(2)现象特征

再来看这几个现象,有两个非常相似的特征:

  • 第一,用户比较多,海量用户

  • 第二,高并发

这两个现象出现以后,对应的就会造成我们的服务器瘫痪。核心本质是什么呢?其实并不是我们的应用服务器,而是我们的关系型数据库。关系型数据库才是最终的罪魁祸首!

(3)造成原因

什么样的原因导致的整个系统崩掉的呢:

  1. **性能瓶颈:磁盘IO性能低下:**关系型数据库菜存取数据的时候和读取数据的时候他要走磁盘IO。磁盘这个性能本身是比较低的。

  2. **扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群:**我们说关系型数据库,它里面表与表之间的关系非常复杂,不知道大家能不能想象一点,就是一张表,通过它的外键关联了七八张表,这七八张表又通过她的外件,每张又关联了四五张表。你想想,查询一下,你要想拿到数据,你就要从A到B、B到C、C到D的一直这么关联下去,最终非常影响查询的效率。同时,你想扩展下,也很难!

(4)解决思路

面对这样的现象,我们要想解决怎么版呢。两方面:

  1. **降低磁盘IO次数,越低越好:**降低磁盘IO次数,越低越好,怎么搞?我不用你磁盘不就行了吗?于是,内存存储的思想就提出来了,我数据不放到你磁盘里边,放内存里,这样是不是效率就高了。
  1. **去除数据间关系,越简单越好:**你的数据关系很复杂,那怎么办呢?干脆简单点,我断开你的关系,我不存关系了,我只存数据,这样不就没这事了吗?

把这两个特征一合并一起,就出来了一个新的概念:NoSQL

1.1.2 NoSQL的概念

(1)概念

NoSQL:即 Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充。
作用:应对基于海量用户和海量数据前提下的数据处理问题。

他说这句话说的非常客气,什么意思呢?就是我们数据存储要用SQL,但是呢可以不仅仅用SQL,还可以用别的东西,那别的东西叫什么呢?于是他定义了一句话叫做NoSQL。这个意思就是说我们存储数据,可以不光使用SQL,我们还可以使用非SQL的这种存储方案,这就是所谓的NoSQL。

(2)特征

  • 可扩容,可伸缩。SQL数据关系过于复杂,你扩容一下难度很高,那我们Nosql 这种的,不存关系,所以它的扩容就简单一些。

  • 大数据量下高性能。包数据非常多的时候,它的性能高,因为你不走磁盘IO,你走的是内存,性能肯定要比磁盘IO的性能快一些。

  • 灵活的数据模型、高可用。他设计了自己的一些数据存储格式,这样能保证效率上来说是比较高的,最后一个高可用,我们等到集群内部分再去它!

(3)常见 Nosql 数据库

目前市面上常见的Nosql产品:Redis、memcache、HBase、MongoDB

(4)应用场景-电商为例

我们以电商为例,来看一看他在这里边起到的作用。

第一类,在电商中我们的基础数据一定要存储起来,比如说商品名称,价格,生产厂商,这些都属于基础数据,这些数据放在MySQL数据库。

第二类,我们商品的附加信息,比如说,你买了一个商品评价了一下,这个评价它不属于商品本身。就像你买一个苹果,“这个苹果很好吃”就是评论,但是你能说很好吃是这个商品的属性嘛?不能这么说,那只是一个人对他的评论而已。这一类数据呢,我们放在另外一个地方,我们放到MongoDB。它也可以用来加快我们的访问,他属于NoSQL的一种。

第三,图片内的信息。注意这种信息相对来说比较固定,他有专用的存储区,我们一般用文件系统来存储。至于是不是分布式,要看你的系统的一个整个瓶颈了?如果说你发现你需要做分布式,那就做,不需要的话,一台主机就搞定了。

第四,搜索关键字。为了加快搜索,我们会用到一些技术,有些人可能了解过,像分ES、Lucene、solr都属于搜索技术。那说的这么热闹,我们的电商解决方案中还没出现我们的redis啊!注意第五类信息。

第五,热点信息。访问频度比较高的信息,这种东西的第二特征就是它具有波段性。换句话说他不是稳定的,它具有一个时效性的。那么这类信息放哪儿了,放到我们的redis这个解决方案中来进行存储。

我们的基础数据都存MySQL,在它的基础之上,我们把它连在一块儿,同时对外提供服务。向上走,有一些信息加载完以后,要放到我们的MongoDB中。还有一类信息,我们放到我们专用的文件系统中(比如图片),关键字就放到我们的这个搜索专用的,如Lucene、solr及集群里边,或者用ES的这种技术里边。那么剩下来的热点信息,放到我们的redis里面。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9PQRMH0V-1664364313486)(https://www.yuque.com/api/filetransfer/images?url=https%3A%2F%2Fblog-1259153703.cos.ap-nanjing.myqcloud.com%2Fimages%2F20211208200213.png&sign=d46da86e265efe70d20f3f9f9d1a42e96b60f1bb3275729dea1dde57d6f9d66a#crop=0&crop=0&crop=1&crop=1&from=url&id=SKSZO&originHeight=1015&originWidth=2236&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=shadow&title=)]

1.2 Redis概念

1.2.1 redis概念

概念Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。

特征

(1)数据间没有必然的关联关系;

(2)内部采用单线程机制进行工作;

(3)高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。

(4)多数据类型支持

  • 字符串类型,string
  • 列表类型,list
  • 散列类型,hash
  • 集合类型,set
  • 有序集合类型,zset/sorted_set

(5)支持持久化,可以进行数据灾难恢复

1.2.2 redis的应用场景

(1)为热点数据加速查询(主要场景)。如热点商品、热点新闻、热点资讯、推广类等高访问量信息等。

(2)即时信息查询。如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等。

(3)时效性信息控制。如验证码控制、投票控制等。

(4)分布式数据共享。如分布式集群架构中的 session 分离消息队列.

1.3 Redis 的下载与安装

后期所有资料分4中不同色块显示,详情如下:

1.3.1 Redis 的下载与安装

本课程所示,均基于Center OS7安装Redis。

(1)下载Redis

下载安装包:

wget http://download.redis.io/releases/redis-5.0.0.tar.gz

解压安装包:

tar –xvf redis-5.0.0.tar.gz

编译(在解压的目录中执行):

make

安装(在解压的目录中执行):

make install

(2)安装 Redis

redis-server,服务器启动命令 客户端启动命令

redis-cli,redis核心配置文件

redis.conf,RDB文件检查工具(快照持久化文件)

redis-check-dump,AOF文件修复工具

redis-check-aof

1.4 Redis服务器启动

1.4.1 Redis服务器启动

启动服务器——参数启动

redis-server [--port port]

范例

redis-server --port 6379

启动服务器——配置文件启动

redis-server config_file_name

范例

redis-server redis.conf

1.4.2 Redis客户端启动

启动客户端

redis-cli [-h host] [-p port]

范 例

redis-cli –h 61.129.65.248 –p 6384

注意:服务器启动指定端口使用的是–port,客户端启动指定端口使用的是-p。-的数量不同。

1.4.3 Redis基础环境设置约定

创建配置文件存储目录

mkdir conf

创建服务器文件存储目录(包含日志、数据、临时配置文件等)

mkdir data

创建快速访问链接

ln -s redis-5.0.0 redis

1.5 配置文件启动与常用配置

1.5.1 服务器端设定

设置服务器以守护进程的方式运行,开启后服务器控制台中将打印服务器运行信息(同日志内容相同)

daemonize yes|no

绑定主机地址

bind ip

设置服务器端口

port port

设置服务器文件保存地址

dir path

1.5.2 客户端配置

服务器允许客户端连接最大数量,默认0,表示无限制。当客户端连接到达上限后,Redis会拒绝新的连接

maxclients count

客户端闲置等待最大时长,达到最大值后关闭对应连接。如需关闭该功能,设置为 0

timeout seconds

1.5.3 日志配置

设置服务器以指定日志记录级别

loglevel debug|verbose|notice|warning

日志记录文件名

logfile filename

注意:日志级别开发期设置为verbose即可,生产环境中配置为notice,简化日志输出量,降低写日志IO的频度。

1.6 Redis基本操作

1.6.1 命令行模式工具使用思考

功能性命令

帮助信息查阅

退出指令

清除屏幕信息

1.6.2 信息读写

设置 key,value 数据

set key value

范例

set name itheima

根据 key 查询对应的 value,如果不存在,返回空(nil)

get key

范例

get name

1.6.3 帮助信息

获取命令帮助文档

help [command]

范例

help set

获取组中所有命令信息名称

help [@group-name]

范例

help @string

1.6.4 退出命令行客户端模式

退出客户端

quit
exit

快捷键

Ctrl+C

1.6.4 redis入门总结

到这里,Redis 入门的相关知识,我们就全部学习完了,再来回顾一下,这个部分我们主要讲解了哪些内容呢?

首先,我们对Redis进行了一个简单介绍,包括NoSQL的概念、Redis的概念等。

然后,我们介绍了Redis 的下载与安装。包括下载与安装、服务器与客户端启动、以及相关配置文件(3类)。

最后,我们介绍了Redis 的基本操作。包括数据读写、退出与帮助信息获取。

@Redis(redis简介,下载与安装配置,基本操作)相关推荐

  1. 第一章 Redis基础(简介+下载和安装+基本操作)----黑马

    第一章 Redis基础(简介+下载和安装+基本操作) ----黑马 文章目录 第一章 Redis基础(简介+下载和安装+基本操作) ----黑马 学习目标: 1. Redis 简介 1.1 NoSQL ...

  2. 【2023Unity游戏开发教程】零基础带你从小白到超神01——Unity简介下载和安装配置(视频资源订阅扣1私发)

    文章目录 简介 优缺点 下载 安装 配置 简介 Unity引擎由Unity科技研发,最早于2004年发布.虽然在3A游戏应用上Unity暂时处于下风,但是在知名游戏上的数量也不遑多让,例如当前火爆的& ...

  3. Neo4j【环境部署 01】图形数据库(简介+下载地址+安装+配置+demo源码+学习教程地址)

    1.简介 Neo4j是一个高性能的.NOSQL图形数据库,它将结构化数据存储在网络上而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数 ...

  4. php redis 主从配置,Redis主从及其PHP扩展安装配置

    1.Redis简介Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序 ...

  5. 【Unity特效】LWRP/URP(Lightweight RP/Universal RP)和ShaderGraph下载及安装配置

    [Unity特效]-LWRP/URP(Lightweight RP/Universal RP)和ShaderGraph下载及安装配置 仅作为学习过程中的记录 使用Unity版本为2020.1.9 Sh ...

  6. Git for windows下载、安装配置并从GitHub Clone项目

    Git for windows下载.安装配置并从GitHub Clone项目 一.Git for Windows下载 方式1:从官网下载,官网地址:https://gitforwindows.org/ ...

  7. 下载和安装配置 MinGW-w64(免安装版)

    下载和安装配置 MinGW-w64(免安装版) 1.找到downloads 2.找到SourceForge 3.找到一个合适的版本(我这里是下拉找到免安装版)下载,其他的都试过了,都不行(可能是因为外 ...

  8. DIGITAL MARS C的下载及安装配置

    DIGITAL MARS C的下载及安装配置 1. 下载digital mars c 由于直接点击官网的链接可能动不了,可以对链接点击右键使用在新窗口打开链接(摸索出来的),后面就可以下载了. 官网链 ...

  9. <2021SC@SDUSC>【Overload游戏引擎】代码下载及安装配置

    <2021SC@SDUSC>[Overload游戏引擎]代码下载及安装配置 代码下载 安装配置 环境配置 代码编译 注意事项 代码下载 下载网址:https://gitee.com/mir ...

  10. Docker在Linux上下载与安装配置

    Docker在Linux上下载与安装配置 官方文档: Redirecting- 1.删除旧版本的docker,防止有残留 sudo yum remove docker \docker-client \ ...

最新文章

  1. Python3 编程第一步
  2. jsp mysql 注入攻击实例
  3. JS与OC中的方法相互调用
  4. 《统一沟通-微软-技巧》-14-Exchange 2010 With SP1-2-UM Integration-1
  5. 2020 . NET大会日程公布!行程亮点全曝光
  6. ios uiview 如何刷新_ios-如何在Swift中刷新imageview而无需重新加载页面?
  7. 【今日CV 计算机视觉论文速览 第146期】Mon, 22 Jul 2019
  8. 敏捷开发系列学习总结(17)——团队需要Scrum Master做这六件事
  9. opencv新手注意
  10. Laravel+DingoAPI+Passport使用邮箱或手机号或uid登录
  11. 少儿编程主要是学什么内容?含教程
  12. 【通俗理解】显著性检验,T-test,P-value
  13. Go整合Logrus实现日志打印
  14. NFA转DFA与DFA简化
  15. 技术分享:应用于厚型气体电子倍增器的高耐压PCB研究
  16. 强制用户在下次登录Linux时更改密码
  17. 机器学习-Pandas 知识点汇总(吐血整理)
  18. Qomo OpenProject Field Test 4发布!
  19. UnicodeEncodeError: 'gbk' codec can't encode character '\u200b' in position 0: illegal multibyte seq
  20. 关于MAC下的QQ聊天中看不到对方所发的图片解决

热门文章

  1. 【vscode软件安装配置vue】
  2. Centos 7yum安装LAMP
  3. 22届春季校招实习试水之路1(Java后端)
  4. 使用rcedit修改exe文件信息(图标、版本、版权等)
  5. SaaS Metrics Math: Tools Resources for Growth Rate, Churn Rate, ARR, MRR More
  6. 双非本科进不了大厂?阿里技术四面+交叉面+HR面,成功拿到offer
  7. 激光测距项目整体框图及原理
  8. html邮箱代码怎么写_如何制作一个简单的HTML登录页面(附代码)
  9. 瑞数5药监局js逆向
  10. RPA技术在提升业务合规操作方面的作用及相关风险探讨