前言
Redis的火爆程度,相信不用我多说,现在大型的互联网公司基本上都需要使用到Redis技术。Redis作为目前最火爆的内存数据库之一,通过在内存中读写数据,很大程度上提高了读写速度,可以说Redis 是实现网站高并发不可或缺的一部分。
但是,对于Redis的使用,相信还是有很多人不知道如何使用,也有不少中小型企业还没有使用到Redis,但是现在的大厂要求,对Redis的使用是需要熟练并掌握的,因此,学习Redis刻不容缓。
好消息是,今天公开了一份宝藏的技术笔记,由腾讯技术专家整理出来的Redis技术笔记,下载量已经突破了30W。
首先,上一套Redis思维脑图
这一套Redis的思维脑图还是非常详细具体的,内容比较多,图片展示的是“简约版”,实际上还有更完整的内容,“+”键未展开,Redis的思维导图能够更好地去帮助我们理解这本笔记的内容,也让我们在学习Redis的时候有一个更清晰的思路。
Redis思维导图内容:
- 基本数据结构及其应用:字符串+列表+集合+有序集合+哈希
- 用Redis实现分布式锁
- 持久化:AOF+RDB
- 如何解决多线程竞争问题
- 数据库、缓存双写不一致问题
- 事务
- 如何保证高可用
- 哨兵
- 集群
- 面试题相关
然后,上正菜:Redis技术笔记
1.认识Redis(Redis简介+Redis数据结构简介)
2.使用Redis构建Web应用(登录和cookie缓存+使用Redis实现购物车+网页缓存+数据行缓存+网页分析)
3.Redis命令(字符串+列表+集合+散列+有序集合+发布与订阅+其他命令)
4.数据安全与性能保障(持久化选项+复制+处理系统故障+Redis事务+非事务型流水线+关于性能方面的注意事项)
5.使用Redis构建支持程序(使用Redis来记录日记+计数器和统计数据+查找IP所属城市及国家+服务的发现与配置)
6.使用Redis构建应用程序组件(自动补全+分布式锁+计数信号量+任务队列+消息拉取+使用Redis进行文件分发)
7.基于搜索的应用程序(使用Redis进行搜索+有序索引+广告定向+职位搜索)
8.构建简单的社交网站(用户和状态+主页时间线+关注者列表和正在关注列表+状态消息的发布与删除+流API)
9.降低内存占用(短结构+分片结构+打包存储二进制位字节)
10.扩展Redis(扩展读性能+扩展写性能和内存容量+扩展复杂的查询)
11.Redis的Lua脚本编程(在不编写C代码的情况下添加新功能+使用Lua重写锁和信号量+移除WATCH/MULTI/EXEC事务+使用Lua对列表进行分片)
最后,Redis面试题也要有
1.为什么要用 redis?/为什么要用缓存?
2.为什么要用 redis 而不用 map/guava做缓存?
3.redis 和 memcached 的区别
4.redis 常见的数据结构以及使用场景分析
5.redis 设置过期时间
6.redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据库都是热点数据?)
7.redis 持久化机制(怎么保证redis 挂掉之后再重启数据可以进行恢复?)
8.redis 事务
9.Redis 常见异常及解决方案
10.分布式环境下常见的应用场景
11.Redis 集群模式
12.如何解决Redis的并发竞争Key问题?
13.如何保证缓存与数据库双写时的数据一致性?
总结
作为Java程序员,应该学习怎样的技术?去招聘网站上随便一搜,看看岗位要求就能够十分清楚了,自己具备怎样的技术和能力,就会影响自己的工作环境和社会地位。所以,多学一些大厂技术是百里无一害的。