既然有Map了,为什么还要有Redis?

这篇具有很好参考价值的文章主要介绍了既然有Map了,为什么还要有Redis?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以下内容转自掘金
作者:哪吒编程
既然有Map了,为什么还要有Redis?

同样是缓存,用map不行吗?

  1. Redis可以存储几十个G的数据,Map行吗?
  2. Redis的缓存可以进行本地持久化,Map行吗?
  3. Redis可以作为分布式缓存,Map只能在同一个JVM中进行缓存;
  4. Redis支持每秒百万级的并发,Map行吗?
  5. Redis有过期机制,Map有吗?
  6. Redis有丰富的API,支持非常多的应用场景,Map行吗?
    既然有Map了,为什么还要有Redis?

Redis为什么是单线程的?

  1. 代码更清晰,处理逻辑更简单;
  2. 不用考虑各种锁的问题,不存在加锁和释放锁的操作,没有因为可能出现死锁而导致的性能问题;
  3. 不存在多线程切换而消耗CPU;
  4. 无法发挥多核CPU的优势,但可以采用多开几个Redis实例来完善;

Redis真的是单线程的吗?

  1. Redis6.0之前是单线程的,Redis6.0之后开始支持多线程;
  2. Redis内部使用了基于epoll的多路服用,也可以多部署几个Redis服务器解决单线程的问题;
  3. Redis主要的性能瓶颈是内存和网络;
  4. 内存好说,加内存条就行了,而网络才是大麻烦,所以Redis6内存好说,加内存条就行了;
  5. 而网络才是大麻烦,所以Redis6.0引入了多线程的概念,
  6. Redis6.0在网络IO处理方面引入了多线程,如网络数据的读写和协议解析等,需要注意的是,执行命令的核心模块还是单线程的。

Redis优缺点

1.优点

  1. Redis是KV数据库,MySQL是关系型数据库,Redis速度更快;
  2. Redis数据操作主要在内存中,MySQL主要将数据存储在硬盘,Redis速度更快;
  3. Redis同样支持持久化(RDB+AOF),Redis支持将数据异步将内存的数据持久化到硬盘上,避免Redis宕机出现数据丢失的问题;
  4. Redis性能极高,读的速度是110000次/秒,写的速度是81000次/秒;
  5. Redis数据类型丰富,不仅支持KV键值对,还支持list、set、zset、hash等数据结构的存储;
  6. Redis支持数据的备份,即master-slave模式的数据备份;
  7. Redis支持简单的事务,操作满足原子性;
  8. Redis支持读写分离,分担读的压力;
  9. Redis支持哨兵模式,实现故障的自动转移;
  10. 单线程操作,避免了频繁的上下文切换;
  11. 采用了非阻塞I/O多路复用机制,性能卓越;

2.缺点

  1. 数据存储在内存,容易造成数据丢失;
  2. 存储容量受内存的限制,只能存储少量的常用数据;
  3. 缓存和数据库双写一致性问题;
  4. 用于缓存时,容易出现内存穿透、缓存击穿、缓存雪崩的问题;
  5. 修改配置文件后,需要进行重启,将硬盘中的数据同步到内存中,消耗的时间较长,而且数据同步的时间里Redis不能提供服务;

Redis常见业务场景

  1. Redis是基于内存的nosql数据库,可以通过新建线程的形式进行持久化,不影响Redis单线程的读写操作
  2. 通过list取最新的N条数据
  3. 模拟类似于token这种需要设置过期时间的场景
  4. 发布订阅消息系统
  5. 定时器、计数器
  6. 缓存加速、分布式会话、排行榜、分布式计数器、分布式锁;
  7. Redis支持事务、持久化、LUA脚本、发布/订阅、缓存淘汰、流技术等特性;既然有Map了,为什么还要有Redis?

总结

Redis是一个key-value存储系统,支持10种数据类型,总结了为何要用Redis替代map作为程序缓存、Redis为什么是单线程的、Redis的优缺点、Redis的常用场景,做了一次Redis的快速入门。文章来源地址https://www.toymoban.com/news/detail-435092.html

到了这里,关于既然有Map了,为什么还要有Redis?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • I2C中为什么线与?为什么要有上拉电阻?

    I2C中为什么线与?为什么要有上拉电阻?

            首先,连接到 I2C 上的设备是开漏输出的。以漏极开漏输出(OD)为例,是指将输出级电路结构改为一个漏极开路输出的 MOS 管。这样做的好处在于: 防止短路。 可以实现 “线与”逻辑 ,可以减少一个与门的使用,简化电路。 结论: I2C支持多个主设备与多个从设

    2024年02月09日
    浏览(8)
  • 【UML】浅谈为什么要有UML?

    上高中的时候,经常使用一些软件,觉得这些软件挺有意思的,就一直很好奇系统这个东西是怎么构建出来的。直到后来,大学的时候上了一门叫做系统分析与设计的课程,从UML开始再到用Spring Boot和Vue写一个系统,慢慢的有一点点的概念,但是还是感觉迷迷糊糊。研究生的

    2024年02月05日
    浏览(9)
  • 有了MySQL,为什么还要有NoSQL

    有了MySQL,为什么还要有NoSQL

        🏆今日学习目标: 🍀MySQL和NoSQL的区别 ✅ 创作者 :林在闪闪发光 ⏰预计时间:30分钟 🎉个人主页:林在闪闪发光的个人主页  🍁林在闪闪发光的个人社区,欢迎你的加入: 林在闪闪发光的社区 目录 noSQL的大概意思 理论支撑 为什么需要NoSQL 为什么NoSQL有处理超大规模

    2023年04月20日
    浏览(11)
  • 为什么有了 HTTP 还要 RPC

    哈喽大家好,我是咸鱼 随着互联网技术的发展,分布式架构越来越被人们所采用。在分布式架构下, 为了实现复杂的业务逻辑,应用程序需要分布式通信实现远程调用 而这时候就需要一种协议来支持远程过程调用,以便实现不同应用程序之间的数据交换和信息传递。其中常

    2024年02月05日
    浏览(8)
  • CentOS软件那么老为什么大家还要用它?

    作为一个专业的服务器系统,RHEL 系统理论上每一个软件包都有 RedHat 内部的人员负责维护,这个维护包括长期(和系统生命周期一样长)的开发、更新、测试、运维等。也就是说你能从 RHEL 系统源上获得的每一个软件包,出现问题都可以找 RedHat 负责。所以 RHEL 不可能无限制

    2024年02月01日
    浏览(7)
  • 数据结构与算法这么难,为什么我们还要学习?

    提到数据结构与算法,就一定会伴随着诸多所谓的坚持和抱怨。同时,还有两个词总是出现,一个是内功,是对知识的定位,一个是吃透,是对自己

    2024年01月19日
    浏览(11)
  • 97-TCP为什么要有一个“TIME_WAIT“的状态

    97-TCP为什么要有一个“TIME_WAIT“的状态

    \\\"TIME_WAIT\\\"状态存在的原因主要有两点: 假设上图中用于确认服务器结束报文段6的TCP报文段7丢失,那么服务器将重发结束报文段,因此客户端需要停留在某个状态以处理重复收到的结束报文段.否则客户端将以复位报文段来回应服务器,服务器则认为这是一个错误,因为他期望的是一

    2024年02月01日
    浏览(10)
  • 为什么MCS-51 单片机总线和端口要有匹配的驱动电路?

            MCS-51系列单片机是一种广泛使用的8位微控制器,它通常用在嵌入式系统中。单片机的总线和端口可能需要额外的驱动电路,这取决于外部设备的电气特性和所需的电流能力。下面将从以下几个方面分析为什么驱动电路这么重要:          电流驱动能力: MCS-51单片机

    2024年02月20日
    浏览(5)
  • 【Linux(0)】为什么要学习Linux,为什么互联网公司在招聘时,会提出要有Linux经验,及其使用;一些Linux常见指令

    【Linux(0)】为什么要学习Linux,为什么互联网公司在招聘时,会提出要有Linux经验,及其使用;一些Linux常见指令

    💓作者简介: 加油,旭杏,目前大二,正在学习 C++ , 数据结构 等👀 💓作者主页:加油,旭杏的主页👀 ⏩本文收录在:再识C进阶的专栏👀 🚚代码仓库:旭日东升 1👀 🌹欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖        在学习完C语言后,紧接着,我们要来 学习Li

    2024年02月05日
    浏览(10)
  • 云服务器那么安全稳定,为什么大厂还要自建机房

    云服务器那么安全稳定,为什么大厂还要自建机房

    一般来说选择自建机房或者是云服务商要考虑的几个问题 成本 安全性 管理 通常来说自建机房,需要自己考虑很多问题,比如 电费 网络 Raid 可靠性 安全性 还要计算运维的成本 似乎从哪个角度来说,自建机房都是不大划算的。 但是为什么还有一些公司要自建机房呢? 首先

    2023年04月08日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包