有些“上古”程序员一直坚持反对使用redis怎么办?

JIDIJI


技术无对错,选择对项目开发最合适的,自己最熟悉的技术是永恒的真理。一些上古程序员坚持反对Redis,该怎么办?下面谈谈自己的看法。


什么是Redis

Redis是一个开源的、基于内存的数据结构存储器,可以用作数据库、缓存和消息中间件,使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

上古程序员一直坚持反对使用redis怎么办?

其实,上古程序猿数据库用的比较好,SQL写的质量比较高,知道什么情况下能用到索引,什么情况下SQL数据会被缓存。用好了SQL不用Redis是完全可以的。


对于缓存保持谨慎态度是完全没有问题的。因为很多时候缓存会掩盖掉一些问题。比如缓存溢出攻击(不是缓存区溢出攻击),用大量无效的数据占满缓存空间使得系统性能急剧下降,比如经常会遇到的由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作等错误提示。


其实,不仅仅是缓存,所有的中间件在解决一部分问题的时候必然会带来其他的问题。比如说分布式计算带来了无限扩容的好处,但是如何保证数据一致性又是带来的一大问题!


所以,对于坚持反对使用redis的上古程序员,没有必要去争执,对于缓存,谨慎的态度是不会有错的!技术无对错,合适的、自己熟悉的永远是最好的。

本文为作者“一个程序员的奋斗史”悟空问答原创文章,未经允许转载、抄袭必究!

一个程序员的奋斗史


一个非常好的问题。我是工作多年的Web应用架构师,来回答一下这个问题。欢迎关注我,了解更多IT专业知识。

题主没有说明原因和理由,在实际项目中可能出现多种场景,不能一概而论。


1,前期预研项目,Demo演示功能,没必要使用

如果原型验证的重点是某一项技术,没时间开发那么完善的系统,这时先不用Redis搭建缓存优化性能什么的,是可以接受的。


2,小型单机项目,功能简单,业务逻辑单一

功能简单的小项目,用户量少,或者对运行效率没那么敏感,为了保持一个简单的系统架构,方便运维管理,倒是不必要引入那么多的依赖服务,也不用占用不必要的服务器资源。


3,公司内部项目,早期开发阶段,快速迭代,业务需求变化大

有那么一类软件系统,是给公司内部自己人用的,各个部门老大就是拍脑袋定需求的核心用户,带来的问题就是需求改动大、开发返工甚至项目取消都有很大的可能性。尤其是在早期开发阶段,还没有沉淀下来一个相对明确的系统框架,这时的重点应该放在业务需求上,不用过度设计技术架构。


4,项目中已经使用了其它类似的技术框架,比如Memcached, MongoDB,等等

Redis是一个高性能的key-value数据库,常用于搭建缓存系统,提高并发响应速度。Redis使用非常普遍,简单轻量,部署维护方便,是很多人使用的第一个NoSQL数据库,很受欢迎。

类似的技术解决方案也可以使用其它框架,比如Memcached,MongoDB,不同技术背景的个人和团队有不同偏好,很正常。


急速马力快de源码客


不要因为用而用,考虑实际需要才是真的。当然不排除你的客户或者老板不差钱,不知从哪里听说了这玩意儿管用,于是就非要用,或者你觉得把它列入你的方案能使整个方案看起来更高大上,便于你最终抬高项目预算。


斯人若月


redis优势在于联机共享内存,如果只是一个单机项目,确实还不如走本地缓存。

但是如果涉及到负载均衡,或者缓存量太大,本地塞不下,就得考虑非本地缓存了!

redis是联机共享缓存中做的比较好的一款产品,除非项目定位就是小众,没啥业务量。如果是大型项目,需要趁早做好缓存设计。


小谢人家


要看需不需要


phoenix3496


为什么要反对,让他搞秒杀,撑不住了他就知道用redis了


搬砖码砖


以前没redis你还不活了吗?


无声De雷


没有上下文的提问,提问者应该还是菜鸟!但是语气中却充满对前辈的不屑,这样的菜鸟会有人带吗?


阿卡627


本身就是 千把人的系统为什么要用 redis呢。


红星闪闪pinb


换一种呗。又不是没有替代品。同类型的kv高效缓存太多了。不见得全球人都在用redis。


分享到:


相關文章: