Redis 不管是在社招/校招面试中,被问到的频率都非常高;在日常开发中,Redis 的使用频率也非常高,几乎是 Java 后端开发必须掌握的技术栈,所以 Redis 也被二哥归纳到了Java 后端四大件中。
Redis是一种基于键值对(key-value)的NoSQL数据库。它的数据都存放在内存中,所以读写性能非常出色,同时,它会利用快照和日志的形式将内存的数据持久化到硬盘上,防止数据丢失。由于 Redis 的出色性能,它被应用于企业级开发的多个场景当中,比如说缓存、计数器、排行榜、社交网络、消息队列、分布式锁等等,因此,Redis 的企业开发中占据了重要的位置。
入门阶段主要记住 Redis 的命令,熟练使用 Redis 的 5 大数据结构就可以了。
思维导图较大,高清原图可以访问这个帖子查看:
https://t.zsxq.com/15KhmDSq4
如果没有 Redis 环境,可以直接访问这个网址https://try.redis.io/,它会给你模拟一个在线的环境可供你尽情使用!
黑马程序员 Redis 入门到实战教程里包含了比较多实战的内容,比如说优惠券秒杀、分布式锁、消息队列等等内容,有同学说这是 B 站上质量最高的 Redis 课程(dog dog dog),有同学把课件也无私的那个了出来,可戳下面的获取。
- 视频地址:https://www.bilibili.com/video/BV1cr4y1671t
- 课件网盘地址获取:https://t.zsxq.com/08rEo9Pdu
任何时候,官方的文档都是非常值得去参考和学习的。
可以考虑使用《Redis 入门指南(第 2 版)》作为教程, 并辅以《Redis 使用手册》作为参考。
下面列举一些 Redis 的使用场景:
- 缓存 - 将热点数据放到内存中,设置内存的最大使用量以及过期淘汰策略来保证缓存的命中率。这也是绝大多数小伙伴会写到简历上的一条。
- 计数器 - Redis 这种内存数据库能支持计数器频繁的读写操作。
- 应用限流 - 限制一个网站访问流量。
- 消息队列 - 使用 List 数据类型,它是双向链表。
- 查找表 - 使用 HASH 数据类型。
- 交集运算 - 使用 SET 类型,例如求两个用户的共同好友。
- 排行榜 - 使用 ZSET 数据类型,技术派的首页就有作者排行榜,用的就是该数据类型。
- 分布式 Session - 多个应用服务器的 Session 都存储到 Redis 中来保证 Session 的一致性,这也是简历上常写一个知识点。
- 分布式锁 - 除了可以使用 SETNX 实现分布式锁之外,还可以使用官方提供的 RedLock 分布式锁实现。
知识星球的百度网盘里,有球友推荐了一套成熟的 Redis 视频课,包括实战篇。
戳这个链接可以查看网盘地址:https://t.zsxq.com/0brEo9Pdu
【尚硅谷】Redis 6 入门到精通视频课,一共 47 集,内容涵盖:Redis 常用数据类型和底层结构、Redis 和 Spring Boot 整合、Redis 事务和锁、Redis 持久化、Redis 主从复制和集群等等内容,有网友说这套课程基本上是按照《Redis 开发与运维》这本书来讲的,可以把这本书拿来作为参考资料。这门课由《尚医通》的王泽老师授课,后面在 Java 企业级开发中也会提到。
- 视频地址:https://www.bilibili.com/video/BV1Rv41177Af
- Redis 开发与运维:https://book.douban.com/subject//
可以从 20 讲开始往后看。
可以阅读《Redis 实战》一书
《Redis 开发与运维》,看标题,就知道,这本书不仅适合开发,还适合运维,涉及的内容有持久化、复制、高可用、内存、哨兵、集群、缓存等。
学习 Redis,有必要深入理解缓存的原理,以及 Redis 作为一种缓存方案在系统应用中的定位,二哥的编程星球里有高清的思维导图,戳下面的练级可以获取。
https://t.zsxq.com/15KhmDSq4
Redis 持久化:
Redis 复制:
Redis 哨兵:
书籍的话推荐Redis 设计与实现,通过阅读本书,可以快速、有效地了解 Redis 的内部构造以及运作机制,从而学会如何更高效地使用 Redis。
这本书讲解得非常透彻,尤其是在 Redis 底层数据结构、RDB 和 AOF 持久化机制,以及哨兵机制和切片集群的介绍上,非常容易理解。
极客时间上的Redis 源码剖析与实战 评分较高,从源码角度理解 Redis 系统设计思路,可以购买。
掘金上的说透 Redis 7也卖的不错,内容包括核心原理剖析+源码解读+实践应用,全方位吃透 Redis 7。
如果源码阅读能力不错的话,可以看看 GitHub 上这份 Redis 3.0 的源码(中文注释版)
https://github.com/huangz1990/redis-3.0-annotated
在学习 Redis 时,最常见的需求有三个方面。
- 日常使用操作:比如常见命令和配置,集群搭建等;
- 关键技术原理:比如 IO 模型、AOF 和 RDB 机制等;
- 在实际使用时的经验教训,比如,Redis 响应变慢了怎么办?Redis 主从库数据不一致怎么办?等等。
一本好的工具书,可以帮助我们快速地了解或查询 Redis 的日常使用命令和操作方法,推荐这份在线版的Redis 命令参考
面试前,强烈建议大家把「面渣逆袭 Redis 篇」好好刷一遍。
还有球友分享的这份《Redis最全的116道面试题.pdf》
https://t.zsxq.com/15ltzRylY
那除了学习,最重要的,就是实操了,在实战中碰壁,在实战中总结经验教训,进阶打怪。
参考链接:https://dunwu.github.io/db-tutorial/pages/fe3808/
GitHub 上标星 10000+ 的开源知识库《二哥的 Java 进阶之路》第一版 PDF 终于来了!包括Java基础语法、数组&字符串、OOP、集合框架、Java IO、异常处理、Java 新特性、网络编程、NIO、并发编程、JVM等等,共计 32 万余字,500+张手绘图,可以说是通俗易懂、风趣幽默……详情戳:太赞了,GitHub 上标星 10000+ 的 Java 教程
微信搜 沉默王二 或扫描下方二维码关注二哥的原创公众号沉默王二,回复 222 即可免费领取。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/17497.html