Redis

redis是什么

d1c2d96d57a34658821125a2f45aa93a.png

redis能干嘛

分布式缓存

Redis_第1张图片

Redis_第2张图片

Redis_第3张图片

内存储存和持久化

redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务

如果断电,redis可以自主把内存里的数据写入硬盘,下次有电直接找回,不用再从mysql拷贝

高可用架构搭配

单机,主从,哨兵,集群

缓存穿透击穿雪崩

分布式锁

队列

排行榜+点赞

优势

Redis_第4张图片

小总结

Redis_第5张图片

redis7新特性

Redis_第6张图片

安装

默认在/usr/local/bin

Redis_第7张图片

Redis_第8张图片

启动和连接

Redis_第9张图片

退出客户端:quit,但是并没有退出服务器,Redis_第10张图片

内部关直接shutdown再quit,远程关就要输入上面的指令

6105701e5b9e421882b612150318bb7c.png

十大类型

总体概述

Redis_第11张图片

Redis_第12张图片

Redis_第13张图片

Redis_第14张图片

Redis_第15张图片

Redis_第16张图片

Redis_第17张图片

Redis_第18张图片

Redis_第19张图片

位图用于每日签到,是否点过赞等等

Redis_第20张图片

Redis_第21张图片

查阅命令

key操作命令

Redis_第22张图片

628c9500fca3434f9c8394a6632ad6eb.png

Redis_第23张图片

Redis_第24张图片

大小写和帮助命令

命令不区分大小写,key区分大小写

Redis_第25张图片

Redis_第26张图片

string

Redis_第27张图片

Redis_第28张图片

Redis_第29张图片

Redis_第30张图片

Redis_第31张图片

Redis_第32张图片

11bc14f27ad54d6287cc28b792f4d547.png

Redis_第33张图片

Redis_第34张图片

Redis_第35张图片

3b8ba3c107d54f599890a6cdfc2f7320.png

7b5f3b1c47f845a1aaa0beed6359052f.png

list

Redis_第36张图片

Redis_第37张图片

Redis_第38张图片

Redis_第39张图片

586f43864d8043249183cb2443910a21.png

Redis_第40张图片

Redis_第41张图片

Redis_第42张图片

Redis_第43张图片

Redis_第44张图片

Redis_第45张图片

Redis_第46张图片

hash

key—value模式不变,value又是一个key-value44d28f7e93d14f0aa8b748f159f57b99.png

Redis_第47张图片

Redis_第48张图片

Redis_第49张图片

Redis_第50张图片

Redis_第51张图片

Redis_第52张图片

Redis_第53张图片

Redis_第54张图片

Redis_第55张图片

set

7d46b371542b4c388a99c6d8736a0ca4.png

Redis_第56张图片

Redis_第57张图片

zset

Redis_第58张图片

bitmap

Redis_第59张图片

Redis_第60张图片

967269c56db34a8d86be5ebfd61e925e.png

Redis_第61张图片

hyperloglog

Redis_第62张图片

Redis_第63张图片

Redis_第64张图片

Redis_第65张图片

Redis_第66张图片

GEO

Redis_第67张图片

Redis_第68张图片

stream

Redis_第69张图片

Redis_第70张图片

Redis_第71张图片

Redis_第72张图片

7ef79e2f8141451a9bc4796a01873507.png

Redis_第73张图片

Redis_第74张图片

Redis_第75张图片

Redis_第76张图片

bitfield

Redis_第77张图片

Redis_第78张图片

redis持久化

理论概述

Redis_第79张图片

Redis_第80张图片

RDB简介

Redis_第81张图片

Redis_第82张图片

Redis_第83张图片

RDB配置说明

Redis_第84张图片

Redis_第85张图片

Redis_第86张图片

Redis_第87张图片

Redis_第88张图片

RDB自动触发

前面设置的5s两次操作会触发rdb

Redis_第89张图片

Redis_第90张图片

Redis_第91张图片

41963fb2e660498b8435e964c8b334dc.png

Redis_第92张图片

RDB手动触发

Redis_第93张图片

Redis_第94张图片

Redis_第95张图片

Redis_第96张图片

Redis_第97张图片

RDB优缺点和数据缺失案例

Redis_第98张图片

Redis_第99张图片

Redis_第100张图片

Redis_第101张图片

Redis_第102张图片

Redis_第103张图片

Redis_第104张图片

RDB修复命令简介

set k1 v1111111111111111111111111111111111111111111

写到一半1的时候宕机了此时rdb文件是破损的需要修复

Redis_第105张图片

RDB触发小结和快照禁用

Redis_第106张图片

153939c5d3dd49b8afa4efcf46c08f20.png

Redis_第107张图片

RDB优化参数

Redis_第108张图片

Redis_第109张图片

Redis_第110张图片

Redis_第111张图片

Redis_第112张图片

AOF简介

009e5e98366b43ae97f4c2d5e8334f54.png

3dfbd3feddf64820afd5ddbdfa77b405.png

AOF工作流程和写回策略

Redis_第113张图片

Redis_第114张图片

Redis_第115张图片

b53a81b3a168492cbcaa18723b30ed54.png

cc1fba64d15940a7874832921ec38c30.png

Redis_第116张图片

AOF功能配置

Redis_第117张图片

Redis_第118张图片

 

Redis_第119张图片

Redis_第120张图片

Redis_第121张图片

Redis_第122张图片

Redis_第123张图片

Redis_第124张图片

Redis_第125张图片

Redis_第126张图片

AOF正常恢复

如果flushdb清除操作也会备份到aof文件中,先备份给一开始的aof文件改个名字,再flushdb又出来一个文件,这个就是啥都没有的,删除,把一开始的aof名字改回来,就可以恢复了

Redis_第127张图片

AOF异常恢复

Redis_第128张图片

Redis_第129张图片

执行完命令然后重新启动即可

AOF优缺点

bbb23ca6f9e24e46951e207d82a4646e.png

演示最后一个

Redis_第130张图片

进入aof文件把最后一行删除即可

Redis_第131张图片

67149e1385b546d083cc4b0d3d53a445.png

AOF重写机制

Redis_第132张图片

Redis_第133张图片

Redis_第134张图片

Redis_第135张图片

Redis_第136张图片

Redis_第137张图片

文件大小目前是555,达到了1k就会自动触发重写

Redis_第138张图片

手动触发

Redis_第139张图片

Redis_第140张图片

Redis_第141张图片

Redis_第142张图片

RDB和AOF混合持久化

Redis_第143张图片

Redis_第144张图片

8958f5f1aefb4571ad50309fee668bba.png

Redis_第145张图片

Redis_第146张图片

 

纯缓存模式

Redis_第147张图片

事务

理论简介

173c74a20836428a8cf2acdeb600fc11.png

Redis_第148张图片

Redis_第149张图片

案例实操

Redis_第150张图片

Redis_第151张图片

Redis_第152张图片

全体连坐:Redis_第153张图片

Redis_第154张图片

Redis_第155张图片

redis认为语法没错就是冤头债主

Redis_第156张图片

0195c4fa9e2f4442b5d74817dfa53d02.png

Redis_第157张图片

Redis_第158张图片

Redis_第159张图片

Redis_第160张图片

Redis_第161张图片

6569ce34078b4329949d04c11b9949be.png

管道

理论简介

Redis_第162张图片

Redis_第163张图片

56275706a8744dcd81c8b377ce48f72c.png

Redis_第164张图片

Redis_第165张图片

案例

Redis_第166张图片

总结

Redis_第167张图片

ca1e7c284d884cdb814a1f225c945b2c.png

8d97d26e32b44de686e009b082398925.png

 

发布订阅

理论简介

Redis_第168张图片

Redis_第169张图片

命令简介

Redis_第170张图片

Redis_第171张图片

f4d88e8dd9d6442898030205665f7194.png

197e186f738c4c5fb52940329525e5fc.png

Redis_第172张图片

Redis_第173张图片

Redis_第174张图片

案例

Redis_第175张图片

Redis_第176张图片

频道是自己指定叫什么名字:这里是c1

Redis_第177张图片

Redis_第178张图片

Redis_第179张图片

Redis_第180张图片

c45e35eb9ebb46ad82fa131d0ba6cc36.png

主从复制

理论简介

0127be0928874a47ba025dd1a43ae35e.png

Redis_第181张图片

Redis_第182张图片

Redis_第183张图片

Redis_第184张图片

Redis_第185张图片

Redis_第186张图片

演示架构

Redis_第187张图片

Redis_第188张图片

Redis_第189张图片

配置细则

Redis_第190张图片

Redis_第191张图片

从机配置:主机是6379

一主二仆

Redis_第192张图片

Redis_第193张图片

Redis_第194张图片

配置成功,主机插入一个数据,从机get也可以得到

Redis_第195张图片

Redis_第196张图片

仍然从头复制

Redis_第197张图片

Redis_第198张图片

Redis_第199张图片

手动指定如果需要配置新密码需要命令行设置命令config

Redis_第200张图片

Redis_第201张图片

薪火相传

中间虚拟master仍然不可有写操作

Redis_第202张图片

Redis_第203张图片

反客为主

Redis_第204张图片

工作流程总结

Redis_第205张图片

506e4d0b7c144c14aaf38a8848a5ed4f.png

9918f29057d64cb5a21ccb868675db98.png

cb5dc1e843dc43fbbd1f1ea9f5ca6504.png

34494012472749299227a7de329a38ce.png

efec4544ca704389aedf80ed41abfe88.png

6caa2186214443e5b9ccb401f81a4489.png

痛点和改进需求

Redis_第206张图片

Redis_第207张图片

55338d946603419c920a77739e580b41.png

因此引入哨兵和集群

哨兵监控

理论简介

Redis_第208张图片

Redis_第209张图片

案例实操1

Redis_第210张图片

哨兵用集群,且数量为奇数(因为投票可以分出胜负)

Redis_第211张图片

哨兵有专门的配置文件

Redis_第212张图片

Redis_第213张图片

717d9b7e700e44d5b24c533a35030ca3.png

案例实操2

Redis_第214张图片

Redis_第215张图片

Redis_第216张图片

案例实操3

Redis_第217张图片

Redis_第218张图片

Redis_第219张图片

Redis_第220张图片

Redis_第221张图片

Redis_第222张图片

案例实操4

Redis_第223张图片

案例实操5

Redis_第224张图片

Redis_第225张图片

Redis_第226张图片

Redis_第227张图片

案例实操7

b984eddbbfd6476f80e5e2ea7b661682.png

哨兵运行流程

907ca626c5ea42e2aeb9398ed340a915.png

Redis_第228张图片

9b3ec902a2a0451291680121744a956f.png

ee64c3e9ec64418eb30e50d141f84650.png

5cbc2241f966431f8d95c0467cb64a52.png Redis_第229张图片

Redis_第230张图片

新master选举算法

Redis_第231张图片

Redis_第232张图片

5954a87b90594f43b8c26cfa3240309f.png

Redis_第233张图片

267e27bf952f4778abe6d1fd672fe41e.png

47b28681e6704d37a77733a42d9d1ec6.png

Redis_第234张图片

使用建议

cf7dca377b9b4f029b6632e0b46515fd.png

引出集群

集群

是什么

d990938c55234b7dbf58eabdef96c7a1.png

能干嘛

Redis_第235张图片

Redis_第236张图片

Redis_第237张图片

槽位slot

Redis_第238张图片

Redis_第239张图片

Redis_第240张图片

Redis_第241张图片

分片

Redis_第242张图片

分片优势

Redis_第243张图片

哈希取余分区算法

1cd989d4098348168a3232a0835ad8dc.png

Redis_第244张图片

Redis_第245张图片

e2d528ae0cce4feb869c850363aaf65d.pnga62df8c42aa24c27955ec6890f87721b.png

一致性哈希算法

Redis_第246张图片

Redis_第247张图片

Redis_第248张图片

Redis_第249张图片

Redis_第250张图片

Redis_第251张图片

redis服务器和key用同一个hash函数

一致性哈希算法优缺点

Redis_第252张图片

Redis_第253张图片

Redis_第254张图片

Redis_第255张图片

哈希槽分区算法

Redis_第256张图片

e8188beb5cff416dab4fbe470bba81dc.png

为什么最大槽位是16384

Redis_第257张图片

ce5d953027354892aaaf8da7157b4b99.png

Redis_第258张图片

df912597deae43ff91aca6551956d140.png

fe6ab1924a854c41aaad764c0313ce3a.png

并不保证强一致性

43caf1a05a594694a7755f1ed036f6ca.png

三主三从搭建上

Redis_第259张图片

Redis_第260张图片

Redis_第261张图片

Redis_第262张图片

Redis_第263张图片

Redis_第264张图片

Redis_第265张图片

三主三从搭建下

Redis_第266张图片

Redis_第267张图片

Redis_第268张图片

三主三从集群读写

Redis_第269张图片

槽位不同对应不同redis,所以会报错,只需要加-c即可,会路由,重定向

ea7b6dbb10b34625accf2a0b1d220cd8.png

6874bd7c32c44330be0a473593bf252e.png

主从容错切换

Redis_第270张图片

Redis_第271张图片

Redis_第272张图片

Redis_第273张图片

Redis_第274张图片

集群扩容

Redis_第275张图片

刚加入时无槽位,啥用没有

Redis_第276张图片

61d20858cb0544b7af642c95c238ce2b.png

4个节点,16384除以4等于4096,然后输入新增节点的id代表分配给他

Redis_第277张图片

Redis_第278张图片

集群缩容

ebde21db2315423aac5f17b6c27a6c58.png

Redis_第279张图片

Redis_第280张图片

Redis_第281张图片

小总结

Redis_第282张图片

2aac512e21de49a1963b347e2e56df8b.png

Redis_第283张图片

Redis_第284张图片

 

 

你可能感兴趣的:(redis,数据库,缓存)