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


程序员■有些“上古”程序员为什么一直坚持反对使用redis?
文章图片
程序员■有些“上古”程序员为什么一直坚持反对使用redis?
项目本身不需要使用缓存
缓存是为了将热点数据存放到内存中 , 减少应用系统与数据库交互的次数以及传输 , 从而提高系统的响应时间 。 在高并发系统中 , 缓存技术是应用非常普遍的技术 , 因为系统最终的瓶颈都会落到数据库层面 。 通过缓存热点数据或者变化非常小的数据 , 前端请求可以直接查询内存获取到数据 , 而不用查询数据库 , 这样可以有效提高系统的并发性能 。 但是在一些小型应用系统或者后台系统 , 其并发数和数据量本省就非常小 , 所以完全没有必要使用Redis之类的缓存技术 。 因为使用了Redis , 必然就要去搭建Redis的服务 , 并且维护它 , 这无形中又是成本的增加 。 所以 , 这可能是有些程序员不喜欢使用Redis的原因 , 系统特性所决定的 。 不是说任何一个系统都要上缓存技术 。
有可替代的其它缓存技术
缓存技术非常多 , 例如Memcached、Ehcache、Aerospike等技术 。 尤其是Ehcache , 可以与Java无缝集成 , 无需像Redis一样搭建Redis Server , 数据直接缓存在应用所在的主机上 , 这对于单机应用或者不需要共享数据的集群应用很适用 。 同时 , Java中我们使用静态Map、集合都可以作为缓存解决方案 。 而Memcached和Aerospike等缓存技术 , 他们的设计和使用都比Redis要简单的多 , 如果我们只是简单使用缓存 , 那Memcached是最佳选择 。 Redis的功能更为强大 , 性能更好 , 它补偿了memcached这类key/value存储的不足 , 在部分场合可以对关系数据库起到很好的补充作用 。
结论
所以 , 要不要用Redis需要看项目本身的特性 , 如果系统并发小、数据量小 , 缓存技术没有必要使用 , 一个Mysql就完全可以搞定 。 其次 , 需要考虑成本 , 可以用Ehcache解决的 , 就不用Memcached , 可以用Memcached解决的 , 就不用Redis 。 至于Aerospike , 阿迈达在用 , 感觉非常强悍 , TPS可以到10万左右 , 谁用谁知道 。
【程序员■有些“上古”程序员为什么一直坚持反对使用redis?】


    推荐阅读