




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库运维与管理项目9结合redis的MySQL运维教学目标知识目标1.掌握Redis的基本结构和读写原理2.掌握Redis的安装方法和常用命令3.掌握Redis的配置方法4.掌握RedisManager的使用方法能力目标1.能使用redis-cli命令监控Redis服务状态2.能使用RedisManager创建集群监控3.能使用MySQL+Redis实现读写分离.素养目标1.培养精益求精的工匠意识2.提高自主学习能力3.提高解决问题能力.思政目标民族自豪感国产软件振兴的使命担当项目9结合redis的MySQL运维项目场景:近年来,在Web开发过程中,MySQL+Redis逐渐成为常用的存储方案。MySQL存储着所有的业务数据,根据业务规模可采用相应的分库分表、读写分离、主备容灾、数据库集群等手段。MySQL使用基于磁盘的I/O访问,基于服务响应性能考虑,可将业务热数据利用Redis缓存,使高频业务数据可以直接从内存读取,从而提高系统整体响应速度。最近天天电器商场的在线商城系统进行了全面升级,为了适应高并发的“秒杀”活动,提高查询速度,该系统采用了MySQL+Redis的存储方案。项目知识导入一、Redis介绍与安装
Redis(RemoteDictionaryServer,远程字典服务)是一个开源、使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value存储数据库。
Redis是一个Key-Value存储系统。与Memcached类似,Redis支持的值类型相对更多,包括string(字符串)、list(列表)、set(集合)、zset(有序集合)和hash(散列类型)。这些数据类型都支持push/pop、add/remove,取交集、并集、差集,以及更丰富的操作,而且这些操作都具有原子性。在此基础上,Redis支持各种不同方式的排序。与Memcached一样,为了保证效率,数据缓存在内存中。二者的区别是Redis会周期性地把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现Master-Slave(主从)同步。项目知识导入二、在Windows系统下安装Redis
Redis支持32位和64位Windows系统。打开下载页面,根据系统选择相应的压缩包,如图9-1所示。项目知识导入下载完成后,将Redis-x64-5.0.10.zip压缩包解压到D盘的Redis目录下。打开命令提示符窗口,然后进入Redis目录,执行如下命令以启动Redis服务。虽然前面启动了Redis服务,但是当关闭命令提示符窗口时,Redis服务就会停止。所以要把Redis安装成Windows系统服务,使Redis服务随系统启动而启动。
在命令提示符窗口中执行如下命令。
redis-server--service-installredis.windows-service.conf--loglevelverbose
命令执行成功后,在Windows系统的服务管理界面上多了一个Redis服务,这表示Redis服务安装成功,如图9-3所示(右图所示)。
在服务管理界面,可以启动和停止Redis服务。三、在Linux上安装redis1.打开Linux系统下的命令提示符窗口,执行如下命令下载Redis源码包。wgethttp://download.redis.io/releases/redis-5.0.10.tar.gz2.将下载的Redis源码包解压,命令如下。tar-zxvfredis-5.0.10.tar.gz3.切换到解压后的目录,命令如下。cdredis-5.0.104.进行编译安装,命令如下。makemakeinstall至此,Redis安装完毕。项目知识导入项目知识导入1.Linux系统下的前端启动
由于前面安装过程中没有指定目录,所以Linux系统会将可执行文件存放在/usr/local/bin目录中。
在终端窗口执行如下命令。
[root@mmredis-5.0.10]#cd/usr/local/bin
[root@mmbin]#./redis-server
命令执行结果如图9-4所示。2.Linux系统下的后端启动(1)将Redis源码包中的redis.conf文件复制到/usr/local/bin目录下,命令如下。[root@mmredis-5.0.10]#cpredis.conf/usr/local/bin/(2)编辑redis.conf文件,命令如下。[root@mmredis-5.0.10]#vi/usr/local/bin/redis.conf将“daemonizeno”改成“daemonizeyes”,如图9-5所示。项目知识导入(3)启动Redis,命令如下。[root@mmredis-5.0.10]#/usr/local/bin/redis-serverredis.conf(4)停止Redis,命令如下。[root@mmredis-5.0.10]#/usr/local/bin/redis-clishutdown项目知识导入四、Redis结构与读写原理
(一)Redis数据库结构1.Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组中每一项都是一个redis.h/redisDb结构。redisServer结构如下:2.每个Redis客户端都有自己的目标数据库,每当客户端执行命令时,目标数据库就会成为这些命令的操作对象。默认情况下目标数据库为0号数据库,可以通过SELECT语句切换目标数据库。redisClient结构如下:(一)Redis数据库结构(续)Redis数据库结构如图9-6所示。每一个Redis服务器内部的数据结构都是一个redisDb[],该数组的大小(默认为16)可以在redis.conf文件中配置,而所有的缓存操作(set、hset、get等)都是在redisDb[]中的一个redisDb(库)上进行的,这个redisDb[]默认是redisDb[0]。(二)读写原理(二)读写原理Redis存储结构示意如图9-7所示。五、Redis常用命令1.redis-cliredis-cli命令用于连接本地Redis服务,执行该命令可以进入Redis的脚本控制台。执行exit(或quit)命令可以退出Redis的脚本控制台。命令如下。2.setkeyvaluesetkeyvalue是缓存设置命令,用于设置一个键名为key的缓存,缓存内容为value。例如设置一个键名为“key1”的缓存,其内容为“hello,redis”,命令如下。[root@mmbin]#redis-cli:6379>:6379>exit[root@mmbin]#:6379>setkey1'hello,redis'OK五、Redis常用命令3.getkeygetkey是缓存获取命令。keys(pattern)命令用于返回满足给定pattern的所有key。例如:4.delkeydelkey是缓存删除命令。例如::6379>keys*1)"key1":6379>getkey1"hello,redis":6379>delkey1(integer)1:6379>keys*(emptylistorset):6379>五、Redis常用命令5.flushallflushall是删除所有缓存的命令。例如:6.dbsizedbsize是查看当前库中的key数量的命令。例如:7.CLIENTLISTCLIENTLIST是查看客户端列表命令。例如::6379>flushallOK:6379>keys*(emptylistorset):6379>dbsize(integer)1:6379>CLIENTLISTid=5addr=:43179fd=8name=age=4idle=0flags=Ndb=0sub=0psub=0multi=-1qbuf=26qbuf-free=32742obl=0oll=0omem=0events=rcmd=client五、Redis常用命令
8.CLIENTKILLCLIENTKILL是关闭某个客户端命令。例如:9.SAVESAVE用于将数据保存到磁盘文件,下次启动Redis服务时,自动加载。例如六、Redis配置1、常用配置项
Redis的配置文件位于Redis安装目录下,文件名为redis.conf(Windows系统下名为redis.windows.conf)。可以通过config命令查看或设置配置项。使用命令查看所有配置项:CONFIGGET*(*号获取所有配置项)。表9-1Redis常用配置项说明序号配置项配置项说明1daemonizenoRedis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程(在Windows系统中不支持守护线程的配置为no)。2pidfile/var/run/redis.pid当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定。3port6379指定Redis监听端口,默认端口为6379。4bind绑定的主机地址。5timeout300在客户端闲置多长时间(秒)后关闭连接,如果指定为0,表示关闭该功能。6loglevelnotice指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为notice。7logfilestdout日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null。8databases16设置数据库的数量,默认数据库为0,可以使用SELECT命令在连接上指定数据库id。表9-1Redis常用配置项说明序号配置项配置项说明9save<seconds><changes>
指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配。Redis默认配置文件中提供了三个条件:save9001save30010save6010000分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改及60秒内有10000个更改。10rdbcompressionyes指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大。11dbfilenamedump.rdb指定本地数据库文件名,默认值为dump.rdb。12dir./指定本地数据库存放目录。13replicaof<masterip><masterport>设置当本机为slave服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步。14masterauth<master-password>当master服务设置了密码保护时,slave服务连接master的密码。15requirepassfoobared设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH<password>命令提供密码,默认关闭。16maxclients128设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置maxclients0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回maxnumberofclientsreached错误信息。表9-1Redis常用配置项说明序号配置项配置项说明17maxmemory<bytes>指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key。18appendonlyno指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。默认为no。19appendfilenameappendonly.aof指定更新日志文件名,默认为appendonly.aof。20appendfsynceverysec指定更新日志条件,共有3个可选值:no:表示等操作系统进行数据缓存同步到磁盘(快)。always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)。everysec:表示每秒同步一次(折中,默认值)。21vm-enabledno指定是否启用虚拟内存机制,默认值为no22vm-swap-file/tmp/redis.swap虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享。23vm-max-memory0将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的(Redis的索引数据就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0。24vmsize32Redisswap文件分成了很多的page,一个对象可以保存在多个page上述,但一个page上不能被多个对象共享,vmsize是要根据存储的数据大小来设定的,建议如果存储很多小对象,page大小最好设置为32或者64bytes;如果存储很大大对象,则可以使用更大的page,如果不确定,就使用默认值。25vms134217728设置swap文件中的page数量,由于页表(一种表示页面空闲或使用的bitmap)是在放在内存中的,在磁盘上每8个pages将消耗1byte的内存。表9-1Redis常用配置项说明序号配置项配置项说明26vm-max-threads4设置访问swap文件的线程数,最好不要超过机器的核数,如果设置为0,则所有对swap文件的操作都是串行的,可能会造成比较长时间的延迟。默认值为4。27glueoutputbufyes设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启。28hash-max-zipmap-entries64hash-max-zipmap-value512指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法。29activerehashingyes指定是否激活重置哈希算法,默认为开启。30include/path/to/local.conf指定包含其他的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件。2、编辑配置可以通过修改redis.conf文件或使用CONFIGSET命令来修改配置。命令语法格式如下。redis:6379>CONFIGSETCONFIG_SETTING_NAMENEW_CONFIG_VALUE例七、Redis集群Redis支持三种集群方案:主从复制模式、Sentinel(哨兵)模式、Cluster集群模式。为了解决Redis高可用模式下集群动态扩容困难、写操作并发瓶颈问题,在3.0之后Redis推出了Redis-Cluster集群模式。1、Redis集群的数据分片Redis集群没有使用一致性哈希,而是引入了“哈希槽”的概念。Redis集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽。集群的每个节点负责一部分哈希槽,举个例子,比如当前集群有3个节点,那么:节点A包含0到5500号哈希槽。节点B包含5501到11000号哈希槽。节点C包含11001到16384号哈希槽。七、Redis集群2、Redis集群的主从复制模型为了保障在部分节点故障或者大部分节点无法通信的情况下集群仍然可用,集群使用了主从复制模型,即每个节点都会有N到1个复制品。在具有A、B、C三个节点的集群示例中,在没有复制模型的情况下,如果节点B发生故障,那么整个集群就会因为缺少5501-11000这个范围的哈希槽而不可用。而如果在集群创建的时候为每个节点添加一个从节点A1、B1、C1,那么整个集群便有三个Master节点和三个Slave节点组成,这样,在节点B故障后,集群便会选举B1为新的主节点继续服务,整个集群便不会因为哈希槽找不到而不可用。八、RedisManagerRedisManager是Redis一站式管理平台,支持集群的监控、安装、管理、告警及基本的数据操作功能。集群监控:支持监控Memory、Clients等Redis重要指标;可实时查看RedisInfo、RedisConfig和SlowLog;集群创建:支持Docker、Machine、Humpback方式;集群管理:支持节点Forget、ReplicateOf、Failover、MoveSlot、Start、Stop、Restart、Delete、修改配置等功能;集群告警:支持Memory、Clients等指标(同监控指标),支持邮件、企业微信APP、企业微信Webhook、钉钉告警;工具箱:支持Query、Scan及基本的数据操作。项目任务分解任务9-1:使用Redis-cli监控Redis服务状态任务说明
在使用Redis的过程中,可能会遇到很多问题,需要随时能诊断、观察Redis的健康情况。Redis提供了info命令,可以让数据库管理员观察它各方面的信息、运行状况。本任务要求使用info命令查看其所提供的信息。任务实施过程项目任务分解任务9-2:
搭建Redis
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年 安康旬阳市直教育单位教师遴选考试试题附答案
- 2025年中国影视广告市场运行态势报告
- 中国无人机航测行业调查报告
- 中国化纤原料行业市场调查报告
- 多功能料理机项目投资可行性研究分析报告(2024-2030版)
- 2025年中国藻蓝蛋白行业市场运行现状及投资战略研究报告
- 2025年中国鲜脆榨菜芯行业市场发展前景及发展趋势与投资战略研究报告
- 中国海水养殖行业市场前景预测及投资战略研究报告
- 中国福建燃气行业调查报告
- 二氯二甲海因中间体行业深度研究分析报告(2024-2030版)
- 三、油气回收设备组成
- 空调服务技术保障及人员培训方案
- 医院导医服务礼仪
- 《交流耐压试验技术》课件
- 国开80646+24219Python语言基础复习题期末复习资料
- 医药产品经理职业规划
- 郑州航空工业管理学院《企业经营统计学案例》2022-2023学年第一学期期末试卷
- 四川省成都市(2024年-2025年小学五年级语文)统编版摸底考试((上下)学期)试卷及答案
- 汽车保险与理赔课件 8.2汽车水灾事故的预防与施救
- 手术室护理不良事件的管理
- 采购磁铁物料合同模板
评论
0/150
提交评论