# 👨🏫 课程介绍
在Web应用发展的初期,那时关系型数据库受到了较为广泛的关注和应用,原因是因为那时候Web站点基本上访问和并发不高、交互也较少。而在后来,随着访问量的提升,使用关系型数据库的Web站点多多少少都开始在性能上出现了一些瓶颈,而瓶颈的源头一般是在磁盘的I/O上。而随着互联网技术的进一步发展,各种类型的应用层出不穷,这导致在当今云计算、大数据盛行的时代,对性能有了更多的需求,主要体现在以下四个方面:
- 低延迟的读写速度:应用快速地反应能极大地提升用户的满意度
- 支撑海量的数据和流量:对于搜索这样大型应用而言,需要利用PB级别的数据和能应对百万级的流量
- 大规模集群的管理:系统管理员希望分布式应用能更简单的部署和管理
- 庞大运营成本的考量:IT部门希望在硬件成本、软件成本和人力成本能够有大幅度地降低
为了克服这一问题,NoSQL应运而生,它同时具备了高性能、可扩展性强、高可用等优点,受到广泛开发人员和仓库管理人员的青睐。
Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库,其具备如下特性:
- 基于内存运行,性能高效
- 支持分布式,理论上可以无限扩展
- key-value存储系统
- 开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API
相比于其他数据库类型,Redis具备的特点是:
- C/S通讯模型
- 单进程单线程模型(Redis6.0之后引入了多线程)
- 丰富的数据类型
- 操作具有原子性
- 持久化
- 高并发读写
- 支持lua脚本
# 📚 课程内容
本课程将从Redis最常见的问题出发,带你全面了解Redis关键知识点,从容面对Redis面试及实战
- Go的Redis使用
- 简单介绍下Redis
- 分布式缓存常见的技术选型方案有哪些?
- 说一下 Redis 和 Memcached 的区别和共同点
- 缓存数据的处理流程是怎样的?
- 为什么要用 Redis/为什么要用缓存?
- Redis 常见数据结构以及使用场景分析
- Redis 单线程模型详解
- Redis 没有使用多线程?为什么不使用多线程?
- Redis6.0 之后为何引入了多线程?
- Redis 给缓存数据设置过期时间有啥用?
- Redis是如何判断数据是否过期的呢?
- 过期的数据的删除策略了解么?
- Redis 内存淘汰机制了解么?
- Redis 持久化机制(怎么保证 Redis 挂掉之后再重启数据可以进行恢复)
- Redis 事务
- 缓存穿透
- 缓存雪崩
- 如何保证缓存和数据库数据的一致性?