工作20年的程序员不愿用Redis,该嘲笑他吗?

最近逛知乎,被系统推荐了一个问题,看了下题目描述。大概是一个小年轻程序员嘲笑公司工作了20多年的前辈开发系统就愿意用数据库,做接口防重之类的也不愿用Redis。

本来是想吐槽前辈死板来着,想着回答问题的答主能站他,结果回答下面清一色的让他解释为什么要用Redis,引入新一层的各位问题该怎么解决。

下面贴一位答主对小年轻的灵魂反问‍‍‍

你不要告诉我们用不用redis,你得告诉我们你为什么想要用redis,不用redis业务会有什么问题?天下没有免费的午餐,不动脑子直接上缓存/NOSQL可能会带来更多更严重的问题。

单一数据库最大的好处在于事务性实现简单,由数据库自己保证。举个简单的例子,下订单需要扣除一个库存,然后插入一条订单条目,如果库存和订单都是数据库表项的话这个事务是无懈可击的,如果库存在redis里,订单条目是MySQL,通常就需要先写redis,成功之后再写数据库,如果写数据库失败了还需要回滚redis,如果最后这个回滚因为网络之类的原因失败了,就会多扣一个库存。

不要以为这些事情很好解决,事务性处理的复杂性远远超过你的想象,比如说还有写MySQL在提交的一瞬间连接断了这种情况,你都没法判断提交到底成功了还是失败了,那你的redis是回滚还是不回滚?

所以引入新的层一定要说清楚,你为了什么目的一定要用缓存/NOSQL,能接受什么样的一致性模型,否则就是在胡闹。

原文链接:https://www.zhihu.com/question/383926405/answer/1125116445


其实用不用Redis,一点也不重要。会用这种学几个API调用,刷几篇八股文就能掌握的差不多的东西,代表不了一个人的水平。反而是如果能在用或者不用Redis背后有一套缜密的分析,通过实际需求来抉择用还是不用,才能见真章。

因为归根结底所有的技术方案都是两害相权取其轻而已。

​​​​

​​​​

​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值