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

以下内容转自掘金
作者:哪吒编程
在这里插入图片描述

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

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

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脚本、发布/订阅、缓存淘汰、流技术等特性;在这里插入图片描述

总结

Redis是一个key-value存储系统,支持10种数据类型,总结了为何要用Redis替代map作为程序缓存、Redis为什么是单线程的、Redis的优缺点、Redis的常用场景,做了一次Redis的快速入门。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麦聪聊数据

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值