0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Redis是什么?简述它的优缺点?

麦辣鸡腿堡 来源:程序员库森 作者:程序员库森 2023-10-09 10:37 次阅读

Redis是什么?简述它的优缺点?

Redis本质上是一个Key-Value类型的内存数据库,很像Memcached,整个数据库加载在内存当中操作,定期通过异步操作把数据库中的数据flush到硬盘上进行保存。

因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value 数据库。

优点:

读写性能极高, Redis能读的速度是110000次/s,写的速度是81000次/s。

支持数据持久化,支持AOF和RDB两种持久化方式。

支持事务, Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。

数据结构丰富,除了支持string类型的value外,还支持hash、set、zset、list等数据结构。

支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。

丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等特性。

缺点:

数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。

2. Redis为什么这么快?

内存存储:Redis是使用内存(in-memeroy)存储,没有磁盘IO上的开销。数据存在内存中,类似于 HashMap,HashMap 的优势就是查找和操作的时间复杂度都是O(1)。

单线程实现( Redis 6.0以前):Redis使用单个线程处理请求,避免了多个线程之间线程切换和锁资源争用的开销。注意:单线程是指的是在核心网络模型中,网络请求模块使用一个线程来处理,即一个线程处理所有网络请求。

非阻塞IO:Redis使用多路复用IO技术,将epoll作为I/O多路复用技术的实现,再加上Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件,不在网络I/O上浪费过多的时间。

优化的数据结构:Redis有诸多可以直接应用的优化数据结构的实现,应用层可以直接使用原生的数据结构提升性能。

使用底层模型不同:Redis直接自己构建了 VM (虚拟内存)机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

Redis的VM(虚拟内存)机制就是暂时把不经常访问的数据(冷数据)从内存交换到磁盘中,从而腾出宝贵的内存空间用于其它需要访问的数据(热数据)。通过VM功能可以实现冷热数据分离,使热数据仍在内存中、冷数据保存到磁盘。这样就可以避免因为内存不足而造成访问速度下降的问题。

Redis提高数据库容量的办法有两种:一种是可以将数据分割到多个RedisServer上;另一种是使用虚拟内存把那些不经常访问的数据交换到磁盘上。需要特别注意的是Redis并没有使用OS提供的Swap,而是自己实现。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6867

    浏览量

    88800
  • 内存
    +关注

    关注

    8

    文章

    2996

    浏览量

    73869
  • Redis
    +关注

    关注

    0

    文章

    371

    浏览量

    10843
收藏 人收藏

    评论

    相关推荐

    nbiot和lora的优缺点是什么?

    nbiot和lora的优缺点
    发表于 06-04 06:37

    LED的优缺点

    LED的优缺点[attach]80908[/attach]
    发表于 08-20 21:07

    SPI协议的优缺点

    SPI协议介绍SPI协议的优缺点
    发表于 12-24 06:29

    LED技术的优缺点

    LED技术的优缺点介绍
    发表于 01-01 06:05

    FPGA有哪些优缺点

    FPGA到底是什么?FPGA有哪些优缺点?FPGA常见的应用是什么?
    发表于 09-18 07:37

    什么是OFDM?有什么优缺点

    什么是OFDM?有什么优缺点?OFDM中降低PAPR的方法有哪些?
    发表于 10-09 07:41

    什么是IoC?具有哪些优缺点

    什么是IoC?具有哪些优缺点
    发表于 10-21 09:33

    ARM架构优缺点是什么?

    ARM架构优缺点是什么?MicroPython项目怎么移植?
    发表于 01-17 06:40

    LwIP的优缺点是什么

    目录2.1 LwIP 的优缺点2.2 LwIP 的文件说明2.2.1 如何获取 LwIP 源码文件2.2.2 LwIP 文件说明2.3 使用 vscode 查看源码2.3.1 查看文件中的符号列表
    发表于 01-20 06:25

    什么是SPI? SPI优缺点是什么?

    什么是SPI?SPI优缺点是什么?
    发表于 02-17 08:00

    ASCII和hex十六进制的优缺点是什么?

    ASCII具有哪些优缺点?hex十六进制的优缺点是什么?
    发表于 02-18 06:26

    液压传动的优缺点

    液压传动的优缺点 液压传动之所以能得到广泛的应用,是由于具有以下的主要优点: (1)由于液压传动是
    发表于 11-28 18:46 9479次阅读

    简述FPGA和DSP的优缺点及使用场合

    简述FPGA_和DSP的优缺点及使用场合,实用版
    发表于 02-16 17:07 14次下载

    数字电源和开关电源的优缺点

    电源的优缺点 数字电源是一种基于数字信号处理的电源。使用数字信号控制模拟电路的输出,可以实现很高的精度和可编程性。数字电源有以下优缺点: 1. 优点: (1)高精度:数字电源使用数字信号控制模拟电路的输出,具有高精度
    的头像 发表于 08-18 15:01 2401次阅读

    redis持久化机制优缺点

    Redis是一个基于内存的高性能键值存储系统,提供了多种持久化机制来保证数据的可靠性。本文将详细介绍Redis的持久化机制,并分析其优缺点。 一、
    的头像 发表于 12-05 10:03 668次阅读