当前位置:   article > 正文

Redis基础总结-redis简介_redis.redis

redis.redis

Redis基础

总结计划

1. Redis 入 门(了解)(操作)
2. 数据类型(重点)(操作)(理解)
3. 常用指令(操作)
4. Jedis(重点)(操作)
5. 持 久 化(重点)(理解)
6. 数据删除与淘汰策略(理解)
7. 主从复制(重点)(操作)(理解)
8. 哨 兵(重点)(操作)(理解)
9. Cluster集群方案(重点)(操作)(理解)
10. 企业级缓存解决方案(重点)(理解)
11. 性能指标监控(了解)

目标:

目标1:能够说出NoSQL的概念,redis的应用场景,能够完成redis的下载安装与启动以及一些常用的配置

​ 即 Not-Only SQL,作为关系型数据库的一种补充方案,主要用来存储一些热点信息。

目标2:能够说出redis常用的5种数据类型,对应这些数据类型的基本操作,应用场景及对应的解决方案
​ string、list、set、hash、

目标3:能够说出redis中常用的一些基本指令

目标4:能够使用jedis完成客户端应用程序的开发

目标5:能够说出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)解决思路

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

一,降低磁盘IO次数,越低越好。

二,去除数据间关系,越简单越好。

降低磁盘IO次数,越低越好,怎么搞?我不用你磁盘不就行了吗?于是,内存存储的思想就提出来了,我数据不放到你磁盘里边,放内存里,这样是不是效率就高了。

第二,你的数据关系很复杂,那怎么办呢?干脆简单点,我断开你的关系,我不存关系了,我只存数据,这样不就没这事了吗?

把这两个特征一合并一起,就出来了一个新的概念: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里面。

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
  • 1

解压安装包:

tar –xvf redis-5.0.0.tar.gz
  • 1

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

make
  • 1

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

make install
  • 1

(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]
  • 1

范例

redis-server --port 6379
  • 1

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

redis-server config_file_name
  • 1

范例

redis-server redis.conf
  • 1
1.4.2 Redis客户端启动

启动客户端

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

范 例

redis-cli –h 61.129.65.248 –p 6384
  • 1

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

1.4.3 Redis基础环境设置约定

创建配置文件存储目录

mkdir conf
  • 1

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

mkdir data
  • 1

创建快速访问链接

ln -s redis-5.0.0 redis
  • 1

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

1.5.1 服务器端设定

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

daemonize yes|no
  • 1

绑定主机地址

bind ip
  • 1

设置服务器端口

port port
  • 1

设置服务器文件保存地址

dir path
  • 1
1.5.2 客户端配置

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

maxclients count
  • 1

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

timeout seconds
  • 1
1.5.3 日志配置

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

loglevel debug|verbose|notice|warning
  • 1

日志记录文件名

logfile filename
  • 1

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

1.6 Redis基本操作

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

功能性命令

帮助信息查阅

退出指令

清除屏幕信息

1.6.2 信息读写

设置 key,value 数据

set key value
  • 1

范例

set name itheima
  • 1

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

get key
  • 1

范例

get name
  • 1
1.6.3 帮助信息

获取命令帮助文档

help [command]
  • 1

范例

help set
  • 1

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

help [@group-name]
  • 1

范例

help @string
  • 1

1.6.4 退出命令行客户端模式

退出客户端

quit
exit
  • 1
  • 2

快捷键

Ctrl+C
  • 1
1.6.4 redis入门总结

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/697584
推荐阅读
相关标签
  

闽ICP备14008679号