您当前的位置: 首页 >  Nin-Ja- Java

“我干了8年Java开发,坚决反对使用Redis”

Nin-Ja- 发布时间:2022-01-24 14:14:54 ,浏览量:4

前段时间,有个人吐槽自己的同事是上古程序猿,干了8年Java开发,一直坚持反对使用Redis。那位上古程序猿设计公司的业务系统时候,始终坚持永远不要用缓存(其他人想用redis),例如做个接口防重复,一定要用数据库来实现,包括定期失效之类的功能。我们在工作中也经常会用到Redis,但是为什么要用Redis?关于Redis的一些场景和实战问题,90%以上的人都没有真正理解Redis。

项目中使用Redis,主要考虑性能和并发。其实不是所有的场景都要上Redis,如果仅仅是分布式锁这些,完全可以用中间件Zookpeer等代替。很多业务系统其实用数据库就够了,无脑上缓存/NOSQL可能会带来更多更严重的问题。

但是在大并发的情况下,所有的请求直接访问数据库,数据库会出现连接异常。这个时候,就需要使用Redis做一个缓冲操作,让请求先访问到Redis,而不是直接访问数据库。

如果你是一位后端工程师,面试时八成会被问到 Redis,特别是大厂,不仅要求能简单使用 Redis,还要深入理解底层原理,具备解决常见问题的能力。可以说,熟练使用 Redis 是后端工程师的必备技能。

不管学习任何一门技术,都应该有个系统的学习!为什么一定要系统性学习?不管你是不是做 IT,其实都有系统性学习的必要。系统性的学习一个知识点,可以让我们在遇到问题时考虑得更加全面,这也是一个成熟的工程师应该具备的特征;碎片化的学习则很容易让我们得出一些片面的、甚至错误的结论。

然而,系统性学习需要耗费巨大的时间和精力,有的人可能会觉得不值得,就放弃了系统性学习,转而信仰复制粘贴改一下七字真言,一头扎进 CURD 的苦海。

对于一个开发者而言,则设计开发方案时,一定要将方案考虑周全。怎样才能将方案考虑周全?唯有持续不断地学习!

关于redis的书籍我也看过不少了,虽然都还不错,但是能够从浅深入到源码的却很少,前几天看到的一份来阿里大牛自产的“Redis深度笔记”,起码是我目前看到过的最完善,最有深度的一份笔记了。

本次是免费分享!下面展示部分截图,点击文末名片,扫码即可免费获取!

笔记大概分为以下几个部分:

  • 开篇基础部分
  • 九大应用部分
  • 八大原理部分
  • 三大集群部分
  • 九大拓展部分
  • 七大源码部分

一、开篇基础部分

  1. 开篇:授人以鱼不若授人以鱼-Redis可以用来做什么
  2. 基础:万丈高楼平地起-Redis基础数据结构

二、九大应用部分

  1. 千帆竞发-分布式锁
  2. 缓兵之计-延时队列
  3. 节衣缩食-位图
  4. 四两拨千斤-HyperLogLog
  5. 层峦叠嶂-布隆过滤器
  6. 断尾求生-简单限流
  7. 一毛不拔-漏斗限流
  8. 近水楼台-GeoHash
  9. 大海捞针-Scan

三、八大原理部分

  1. 鞭辟入里-线程IO模型
  2. 交头接耳-通信协议
  3. 未雨绸缪-持久化
  4. 雷厉风行-管道
  5. 同舟共济-事务
  6. 小道消息-PubSub
  7. 开源节流-小对象压缩
  8. 有备无患-主从同步

四、三大集群部分

  1. 李代桃僵-Sentinel
  2. 分而治之-Codis
  3. 众志成城-Cluster

五、九大拓展部分

  1. 耳听八方-Stream
  2. 无所不知-Info指令
  3. 拾遗漏补-再谈分布式锁
  4. 朝生暮死-过期策略
  5. 优胜劣汰-LRU
  6. 平波缓进-懒惰删除
  7. 妙手仁心-优雅地使用Jedis
  8. 居安思危-保护Redis
  9. 隔墙有耳- Redis安全通信

六、七大源码部分

  1. 极度深寒-探索(字串符)内部结构
  2. 极度深寒-探索(字典)内部
  3. 极度深寒-探索(压缩列表)内部
  4. 极度深寒-探索(快速列表)内部
  5. 极度深寒-探索(跳跃列表)内部结构
  6. 极度深寒-探索(紧凑列表)结构
  7. 极度深寒-探索(基数树)结构

Redis 涉及的知识点是非常繁多的,这本笔记的作者已经整理的很全面了,但依然无法顾及到 Redis 的方方面面,不过已经是能找到最棒的,有需要的可以点下面的名片找我免费领。

关注
打赏
查看更多评论

Nin-Ja-

暂无认证

  • 4浏览

    0关注

    350博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录