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

    文章

    6511

    浏览量

    87600
  • 内存
    +关注

    关注

    8

    文章

    2767

    浏览量

    72765
  • Redis
    +关注

    关注

    0

    文章

    362

    浏览量

    10494
收藏 人收藏

    评论

    相关推荐

    LED的优缺点

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

    SPI协议的优缺点

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

    LED技术的优缺点

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

    无刷电机的优缺点

    无刷电机的优缺点无刷电机的作用无刷电机的使用寿命
    发表于 01-27 06:16

    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

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

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

    触摸屏优缺点

    触摸屏作为一种最新的电脑输入设备,它是目前最简单、方便、自然的一种人机交互方式。本视频首先介绍了触摸屏优缺点,其次介绍了红外触摸屏的优缺点,最后介绍了电容式触摸屏优缺点
    的头像 发表于 11-23 16:56 2.7w次阅读

    redis分布式锁的缺点

    Redis分布式锁是一种常见的用于解决分布式系统中资源争用问题的解决方案。尽管Redis分布式锁具有很多优点,但它也存在一些缺点。本文将从几个方面详细介绍Redis分布式锁的
    的头像 发表于 12-04 14:05 473次阅读

    redis持久化机制优缺点

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