当前位置:网站首页>Redis是什么?简述它的优缺点
Redis是什么?简述它的优缺点
2022-07-25 21:50:00 【华为云】
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适合的场景主要局限在较小数据量的高性能操作和运算上。
Redis为什么这么快?
内存存储:Redis是使用内存(in-memeroy)存储,没有磁盘IO上的开销。数据存在内存中,类似于 HashMap,HashMap 的优势就是查找和操作的时间复杂度都是O(1)。
单线程实现( Redisv6.0以前):Redis使用单个线程处理请求,避免了多个线程之间线程切换和锁资源争用的开销。注意:单线程是指的是在核心网络模型中,网络请求模块使用一个线程来处理,即一个线程处理所有网络请求。
非阻塞IO:Redis使用多路复用IO技术,将epoll作为I/O多路复用技术的实现,再加上Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件,不在网络I/O上浪费过多的时间。
优化的数据结构:Redis有诸多可以直接应用的优化数据结构的实现,应用层可以直接使用原生的数据结构提升性能。
使用底层模型不同:Redis直接自己构建了 VM (虚拟内存)机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
Redis的VM(虚拟内存)机制就是暂时把不经常访问的数据(冷数据)从内存交换到磁盘中,从而腾出宝贵的内存空间用于其它需要访问的数据(热数据)。通过VM功能可以实现冷热数据分离,使热数据仍在内存中、冷数据保存到磁盘。这样就可以避免因为内存不足而造成访问速度下降的问题。
Redis提高数据库容量的办法有两种:一种是可以将数据分割到多个RedisServer上;另一种是使用虚拟内存把那些不经常访问的数据交换到磁盘上。需要特别注意的是Redis并没有使用OS提供的Swap,而是自己实现。
Redis相比Memcachd有哪些优势?
数据类型:Memcached所有的值均是简单的字符串,Redis支持更为丰富的数据类型,支持string(字符串),list(列表),Set(集合)、Sorted Set(有序集合)、Hash(哈希)等。
持久化:Redis支持数据落地持久化存储,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 memcache不支持数据持久存储 。
集群模式:Redis提供主从同步机制,以及 Cluster集群部署能力,能够提供高可用服务。Memcached没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据
性能对比:Redis的速度比Memcached快很多。
网络IO模型:Redis使用单线程的多路 IO 复用模型,Memcached使用多线程的非阻塞IO模式。
Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。
这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。
边栏推荐
- Mysql8.0 MHA to achieve high availability "MHA"
- Byte side: can TCP and UDP use the same port?
- Detailed explanation of several ideas for implementing timed tasks in PHP
- Dovecot set mailbox quota
- 分享|智慧消防应急管理平台解决方案(附PDF)
- Babbitt | metauniverse daily must read: the popularity of virtual people has decreased, and some "debut is the peak", and the onlookers have dispersed
- C语言左值和右值说明[通俗易懂]
- ORIGYN基金会正式启动$OGY Staking,引领新一轮生态利好
- Vivo official website app full model UI adaptation scheme
- CNN structural design skills: taking into account speed accuracy and engineering implementation
猜你喜欢

2022最新软件测试八股文,能不能拿心仪Offer就看你背得怎样了

strcpy()
QT | learn about QT creator by creating a simple project

ansible+Crontab批部署巡检

The adequacy of source evaluation forum · observation model test

【Redis底层解析】链表类型

Pyg tutorial (8): calculate a more efficient sparse matrix form
![[hand torn STL] unordered_ set、unordered_ Map (encapsulated with hash table)](/img/33/08f7b72ce99e07821a1f4b6e594e13.png)
[hand torn STL] unordered_ set、unordered_ Map (encapsulated with hash table)

Origen foundation officially launched $ogy stacking, leading a new round of ecological benefits

性能调试 -- Chrome Performance
随机推荐
Talk about what's going on with C # backstage GC?
【饭谈】Web3.0到来后,测试人员该何去何从?(十条预言和建议)
分享|智慧消防应急管理平台解决方案(附PDF)
919. Complete binary tree inserter: simple BFS application problem
【饭谈】那些看似为公司着想,实际却让人无法理解的事(二:面试时的软素质“眼缘”)
H5 realize the animation effect of a scratch card
How to evaluate hardware resources (number of CPUs, memory size) when Oracle migrates from small computers to x86 architecture? Is there a measurement index or company?
Web3 entrepreneurship has all the elements of explosive growth of innovation
Redis configuration
[leetcode ladder] linked list · 021 merge two ordered linked lists
Origen foundation officially launched $ogy stacking, leading a new round of ecological benefits
少儿编程 电子学会图形化编程等级考试Scratch一级真题解析(判断题)2022年6月
C#程序设计的6大原则
I'm also drunk. Eureka delayed registration and this pit!
如何快速搭建图片服务器[通俗易懂]
Basic knowledge in the project
The noise reduction effect is increased by more than 6 times! With the microphone inside the headset, this wireless noise reduction headset is unusual!
Special symbols in shell
YUV420 YUV420sp 图像格式「建议收藏」
Research: more than 70% of doctors are still prescribing unsafe antibiotic drugs