背景:2022-08-06 部门的技术分享轮到我了,分享主题是关于 redis 的,要求时长1小时左右
其实分享的内容偏实战多一点,没涉及太多底层,因为是整个部门参与的,纯技术的话,就没太多测试,产品,运维的事情了……
废话不多说,直接记录一下分享的内容吧
1、redis 简介,应用场景 (5min)
1) 一句话概述:开源的分布式内存K-V类型的数据库
2) 与MySQL、Oracle 等传统数据库相比 => 突出高性能、健壮性
3) 与本地缓存相比 => 突出分布式场景、数据稳定性、安全性
4) 与其他的分布式缓存数据库(memcached)相比 => 突出安全性、种类繁多
5) 在现在的微服务架构下的重要性以及担任的角色、解决的问题
2、redis 的发展历程,大版本的主要差异 (5min)
1) 单机部署 - 主从部署 - setinel 部署 - cluster 部署每种部署各自的使用场景以及优缺点单机:开发
主从:提高读性能
setinel:高可用cluster:写能力、内存容量、健壮性、高可用
2) 大版本的差异
3.2 之前 从库有一个致命的bug
4.x 有了集群,但是都需要依赖 redis-trib.rb
5.x redis-cli 集成了 redis-trib.rb 的功能、对内存的优化、提高redis的并发能力
3、redis 常用的数据结构,每个数据结构的特点以及应用场景,还有就是开发中容易出现的问题 (20min)
1) strings
2) hashes
3) lists
4) sets
5) zsets
6) bit maps
7) geo
8) hyperloglog
4、redis 集群的工作原理 (5min)
1) redis 槽的概念以及划分
2) 一个写请求过来 客户端-redis集群-客户端 分别做了什么
3) 一个读请求过来 客户端-redis集群-客户端 分别做了什么
5、redis 的持久化的特点以及使用场景(5 min)
1)、主要的作用以及工作原理
2)、 RDB : 备份、恢复
3)、AOF:备份、发生故障时减少数据丢失
6、redis 在日常开发者经常遇到的问题以及容易踩的坑 (10min)
1)、分布式锁
2)、代码规划
3)、数据不一致问题定位以及解决方案
7、互动交流时间 (10min)
1)、运维:如果master挂了,slave上去了,如何查看有没有数据丢失?怎么恢复?
2)、开发:如果需要写入或者读取大量的数据,如何开发?
3)、运维:扩展集群,会不会影响现有的系统、需不需要停机扩展?
4)、PM:如何查看大KEY、如何处理大KEY?
5)、如果集群或者某个节点内存不够了,会发生什么/
由于时间有限,只能做个简单的记录,详情如果有需要,可以私聊或者后面我再补上。
| 留言与评论(共有 0 条评论) “” |