首页 > 数据库 >什么是Redis?Redis为什么这么快?Redis相比Memcached有哪些共同点和区别?

什么是Redis?Redis为什么这么快?Redis相比Memcached有哪些共同点和区别?

时间:2024-04-08 21:32:24浏览次数:22  
标签:共同点 数据 Redis 支持 内存 IO Memcached

(1)什么是Redis?简述它的优缺点?Redis为什么这么快

Redis本质上是一个Key-Value类型的内存数据库,把整个数据库加载在内存当中操作,定期通过异步操作把数据库中的数据复制到硬盘中。(异步操作,一种非阻塞执行任务的方式,其中任务的执行与结果的返回不会阻碍原者继续执行后续操作。)

优点

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

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

支持事务:Redis的所有操作都是原子性的,要么都成功执行,要么不执行。

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

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

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

缺点

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

主机宕机:宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性。(主机北京,从机上海,北京用户连主机,上海用户连从机)

Redis速度快的原因

内存存储:Redis使用内存存储,没有磁盘IO上的开销。

单线程实现(Redis 6.0以前):Redis使用单个线程处理请求,避免了多个线程之间线程切换、锁资源争用的开销。

非阻塞IO:Redis使用多路复用IO技术,不在网络I/O上浪费过多的时间。

优化的数据结构:Redis有很多可以直接应用的优化的数据结构。

(2)Redis相比Memcached有哪些共同点和区别?

共同点

都是基于内存的数据库,⼀般都⽤来当做缓存使⽤。都有过期策略。性能都⾮常⾼。

区别

数据类型:Redis支持更为丰富的数据类型,支持string(字符串),list(列表),Set(集合)、Sorted Set(Zset有序集合)、Hash(哈希)等,Memcached所有的值,均是简单的字符串。

持久化:Redis支持数据落地持久化存储,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。memcache不支持数据持久存储,它把数据全部存在内存。

集群模式:Redis提供主从同步机制,以及 Cluster集群部署能力,能够提供高可用服务。Memcached没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据

网络IO模型:Redis使用单线程的多路 IO 复用模型,Memcached使用多线程的非阻塞IO模式。

过期策略:Redis 同时使⽤了惰性删除与定期删除,Memcached 过期数据的删除策略只⽤了惰性删除。

性能对比:Redis的速度比Memcached快很多。

标签:共同点,数据,Redis,支持,内存,IO,Memcached
From: https://blog.csdn.net/xiaozhi6yyy18/article/details/137524457

相关文章

  • Redis 有哪些数据类型?
    5种基础数据类型,分别是:String、List、Set、Zset、Hash。 结构类型结构存储的值结构的读写能力String字符串可以是字符串、整数或浮点数对整个字符串或字符串的一部分进行操作;对整数或浮点数进行自增或自减操作;List列表一个链表,链表上的每个节点都包含一个字符......
  • SpringBoot拦截器注入stringredistemplate出现Consider defining a bean of type 'org
    问题自定义拦截器需要注入StringRedisTemplate来通过token获取redis中的数据自定义拦截器代码@ComponentpublicclassLoginInterceptorimplementsHandlerInterceptor{@AutowiredprivateStringRedisTemplatestringRedisTemplate;@Overridepublicb......
  • redis自学(30)搭建主从架构
    搭建主从架构单节点redis的并发能力是有上限的,要进一步提高redis的并发能力,就需要搭建主从集群,实现读写分离。  搭建主从的注意事项(仅注意,是否需要修改看实际情况)端口修改  目录修改  也可以通过命令的方式修改文档  声明绑定实例ip   开启主从......
  • redis的Streams详细介绍
    Redis的Streams是一个日志类型的数据结构,它在Redis5.0中被引入,用于存储并取回消息。这种数据结构让Redis可以成为消息队列系统和流处理系统。它是一个持久化、可复制、基于磁盘的、具有时间序列信息的日志系统。Streams主要的命令包括:**XADDkeyIDfieldvalue[fieldval......
  • 运维系列(创建windows服务,亲测有效):Windows 安装Redis(图文详解)
    Windows安装Redis(图文详解)Windows安装Redis(图文详解)一、Redis是什么数据库?二、安装Redis1、下载地址2、安装过程2.1将下载的压缩包解压到一个文件夹中:2.2打开cmd指令窗口,进入到解压的那个文件夹里:2.3输入redis-serverredis.windows.conf:2.4部署Redis在windows下的......
  • Redis的跳跃表
    在Redis中,有一种高效的数据结构叫做有序集合(zset)它是一种集合,其中每个成员(member)都会关联一个分数(score)。zset既可以快速地通过member找到该成员对应的分数,又可以按照分数的大小进行范围查询,这对于实现排行榜等功能非常有用。那么zset是如何实现这样的功能的呢?答案是跳跃......
  • 【知识点】Redis-缓存-缓存击穿
    缓存击穿:缓存中一个热点数据过期或失效时,由于该数据非常受欢迎,会有大量请求直接打到数据库上,导致数据库负载增大、相应变慢甚至瘫痪。解决方式:互斥锁在查询数据库之前首先获取分布式锁,更新redis之后再释放锁,可以保证数据的强一致性。优缺点:优点:强一致性缺点:性能差逻辑......
  • Redis持久化机制
    1.持久化机制Redis官方提供了两种不同的持久化方法来将内存的数据存储到硬盘里面分别是:-快照(Snapshot)-AOF(AppendOnlyFile)只追加日志文件1.1快照(Snapshot)1.特点这种方式可以将某一时刻的所有数据都写入硬盘中,当然这也是redis的默认开启持久化方式,保存的文......
  • Redis的前世今生(内存管理、持久化、高可用、集群 详解)一看就懂
    Redis的诞生:    redis的诞生和mysql脱不了关系,在redis还未出现时,用户的每次请求都是直接访问mysql,渐渐的人们发现,请求大部分都是读操作,而且很多都是重复的数据,磁盘的i/o是很慢的,所以人们就想,能不能学学cpu建立的缓存机制,mysql也搞一个缓存,就这样一个基于内存的数据库......
  • 为什么Redis 是单线程的以及为什么这么快?
    redis完全基于内存,绝大部分请求是纯粹的内存操作,非常快速.数据结构简单,对数据操作也简单,redis中的数据结构是专门进行设计的采用单线程模型,避免了不必要的上下文切换和竞争条件,也不存在多线程或者多线程切换而消耗CPU,不用考虑各种锁的问题,不存在加锁,释放锁的操作......