有些程序员一直坚持反对使用redis怎么办

互联网- 2023-08-21 19:35:22

上古程序员实名反对用Redis,我是拿他没办法了

大家好,今天小编来为大家解答有些程序员一直坚持反对使用redis怎么办这个问题,不建议用redis很多人还不知道,现在让我们一起来看看吧!

本文目录

  1. redis队列与消息队列优缺点
  2. redis停止开发了吗
  3. redis为什么不支持回滚
  4. 有些程序员一直坚持反对使用redis怎么办

redis队列与消息队列优缺点

Redis队列和消息队列它们各自的优缺点如下:

Redis队列是基于内存的队列实现方式,具有以下优点:

1.速度快:由于Redis队列是基于内存实现的,读写速度非常快,适合于高并发场景。

2.简单易用:Redis队列的实现非常简单,易于使用和部署,适合于小型应用。

3.支持多种数据结构:Redis队列支持多种数据结构,包括列表、哈希表、集合等,可以满足不同的需求。

但是Redis队列也有一些缺点:

1.容量有限:由于Redis队列是基于内存的,容量有限,如果队列中的数据量过大,可能会导致内存溢出。

2.数据丢失:由于Redis队列是基于内存实现的,如果Redis服务器宕机或者出现其他故障,可能会导致队列中的数据丢失。

消息队列是一种分布式的队列实现方式,具有以下优点:

1.可靠性高:消息队列通常采用持久化存储方式,即使出现故障也不会导致数据丢失。

2.扩展性好:消息队列可以采用分布式架构,支持多台服务器共同处理消息,可以很好地扩展应用。

3.支持多种协议:消息队列支持多种协议,包括AMQP、JMS、MQTT等,可以满足不同的需求。

但是消息队列也有一些缺点:

1.配置复杂:消息队列的配置相对复杂,需要考虑消息的路由、持久化、重试等多个因素。

2.性能较低:由于消息队列需要进行网络传输和持久化存储,相对于Redis队列,性能较低。

综上所述,Redis队列适合于速度要求较高、数据量较小的场景,而消息队列适合于可靠性要求较高、数据量较大、分布式处理的场景。

redis停止开发了吗

没有停止开发。因为Redis是一款非常流行的内存数据库,而且它的使用场景非常广泛,有着强大的功能和高效的性能。虽然Redis在2015年发表了最后一个重大版本的更新,但是在此之后,开发者仍不断地进行小型更新和bug修复工作。此外,Redis社区依然十分活跃,用户也在积极地贡献代码和提出建议。因此,我们可以得出Redis并没有停止开发。从另一个角度来看,Redis在停止开发之后,可能会遭受安全漏洞和新的需求无法得到满足等问题,对用户和开发者都不利。所以,我们期待Redis能够继续保持开发活力,让它在现有的基础上不断进化和壮大。

redis为什么不支持回滚

Redis作为主流的NoSQL,几乎成了各大中小型项目技术选型的标配,而我们通常也只是将Redis作为缓存来使用。很少有人知道Redis也有“事务”的概念。

Redis事务支持并不完整

虽说Redis有事务概念,但是它相对于关系型数据库的事务而言,事务实现的并不完全。Redis中的事务并不是严格意义的事务,因为无法保证ACID(原子性、一致性、隔离性、持久性)特性。

Redis中的事务仅是简单的将一系列命令封装在一起执行,事务只能取消,而不能进行回滚操作!事务中涉及的多条命令中的一条出现错误,并不影响其它命令的正常执行。

Redis事务为什么不支持回滚?

Redis事务之所以不支持回滚操作是因为Redis中的事务并不是关系型数据库中所说的事务。Redis事务靠的是命令队列实现的,Redis中的命令只有在语法错误时才会执行失败,而命令若存在语法错误也无法进入事务队列中,所以可以理解为Redis中的命令不会执行失败,因此不需要回滚。

综上,Redis事务并不是严格意义上的事务,所以在实际项目中不建议使用Redis事务,没有必要。

以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流~我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

有些程序员一直坚持反对使用redis怎么办

分享大佬的回答,似乎很有道理。

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

单一数据库最大的好处在于事务性实现简单,由数据库自己保证。举个简单的例子,下订单需要扣除一个库存,然后插入一条订单条目,如果库存和订单都是数据库表项的话这个事务是无懈可击的,如果库存在redis里,订单条目是MySQL,通常就需要先写redis,成功之后再写数据库,如果写数据库失败了还需要回滚redis,如果最后这个回滚因为网络之类的原因失败了,就会多扣一个库存。不要以为这些事情很好解决,事务性处理的复杂性远远超过你的想象,比如说还有写MySQL在提交的一瞬间连接断了这种情况,你都没法判断提交到底成功了还是失败了,那你的redis是回滚还是不回滚?

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

文章分享结束,有些程序员一直坚持反对使用redis怎么办和不建议用redis的答案你都知道了吗?欢迎再次光临本站哦!

阿里JavaP8十年摸爬滚打,告诉你老程序员为何反对使用Redis
  • 声明:本文内容来自互联网不代表本站观点,转载请注明出处:bk.66688815.com/12/122163.html
上一篇:有些学校让高三学生早上6:30到校晨跑,你认为有必要吗
下一篇:脂溢性脱发能植发么
相关文章
返回顶部小火箭