当前位置:网站首页>Redisv6.0为何引入多线程?
Redisv6.0为何引入多线程?
2022-07-25 21:50:00 【华为云】
优势
每修改同步:appendfsync always 同步持久化,每次发生数据变更会被立即记录到磁盘,性能较差但数据完整性比较好
每秒同步:appendfsync everysec 异步操作,每秒记录,如果一秒内宕机,有数据丢失
不同步:appendfsync no 从不同步
劣势
相同数据集的数据而言aof文件要远大于rdb文件,恢复速度慢于rdb
aof运行效率要慢于rdb,每秒同步策略效率较好,不同步效率和rdb相同
如何选择RDB和AOF
如果是数据不那么敏感,且可以从其他地方重新生成补回的,那么可以关闭持久化。
如果是数据比较重要,不想再从其他地方获取,且可以承受数分钟的数据丢失,比如缓存等,那么可以只使用RDB。
如果是用做内存数据库,要使用Redis的持久化,建议是RDB和AOF都开启,或者定期执行bgsave做快照备份,RDB方式更适合做数据的备份,AOF可以保证数据的不丢失。
Redis4.0 对于持久化机制的优化
Redis4.0相对与3.X版本其中一个比较大的变化是4.0添加了新的混合持久化方式。
优势:混合持久化结合了RDB持久化 和 AOF 持久化的优点, 由于绝大部分都是RDB格式,加载速度快,同时结合AOF,增量的数据以AOF方式保存了,数据更少的丢失。
劣势:兼容性差,一旦开启了混合持久化,在4.0之前版本都不识别该aof文件,同时由于前部分是RDB格式,阅读性较差。
Redisv6.0为何引入多线程?
很简单,就是 Redis的网络 I/O 瓶颈已经越来越明显了。
随着互联网的飞速发展,互联网业务系统所要处理的线上流量越来越大,Redis的单线程模式会导致系统消耗很多 CPU 时间在网络 I/O 上从而降低吞吐量,要提升 Redis的性能有两个方向:
优化网络 I/O 模块
提高机器内存读写的速度
后者依赖于硬件的发展,暂时无解。所以只能从前者下手,网络 I/O 的优化又可以分为两个方向:
零拷贝技术或者 DPDK 技术
利用多核优势
零拷贝技术有其局限性,无法完全适配 Redis这一类复杂的网络 I/O 场景,更多网络 I/O 对 CPU 时间的消耗和 Linux 零拷贝技术。而 DPDK 技术通过旁路网卡 I/O 绕过内核协议栈的方式又太过于复杂以及需要内核甚至是硬件的支持。
因此,利用多核优势成为了优化网络 I/O 性价比最高的方案。
边栏推荐
- C#常见的集合
- Job interviews are always a second kill? After reading the seckill system notes secretly stored by JD T8, I have given my knees
- Detailed explanation of Ag search tool parameters
- Basic knowledge in the project
- 【饭谈】那些看似为公司着想,实际却很自私的故事 (一:造轮子)
- How to implement distributed locks with redis?
- C#Socket
- redis主从架构锁失效问题(主从)
- 五、品达通用权限系统__pd-tools-xxs(防跨站脚本攻击)
- Apache Shenyu admin authentication bypass vulnerability (cve-2021-37580) analysis and protection measures
猜你喜欢

少儿编程 电子学会图形化编程等级考试Scratch一级真题解析(判断题)2022年6月

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

Performance debugging -- chrome performance
![PHP zero time task, PHP laravel time task schedule [dry goods]](/img/09/c9a4c83fe23c852aa76a6f5a6cea52.png)
PHP zero time task, PHP laravel time task schedule [dry goods]
QT | learn about QT creator by creating a simple project

Face and key point detection: yolo5face practice

NVIDIA has opened source a comprehensive library of 3D deep learning based on pytorch

【饭谈】那些看似为公司着想,实际却让人无法理解的事(二:面试时的软素质“眼缘”)

Shopify sellers: share some tips for social media marketing!

【Redis底层解析】字符串类型
随机推荐
立创EDA——器件的创建01-电阻(二)
【leetcode天梯】链表 · 021 合并两个有序链表
C语言左值和右值说明[通俗易懂]
ZigBee development board (nxpzigbee Development)
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?
Optimization analysis of storage structure and IO performance of openharmony littlefs file system
【面试:并发篇24:多线程:综合练习】顺序控制
jsp九大内置对象
Idea resolves the prompt of profile properties disappear
立创EDA——我为什么要学EDA
FAW red flag "King fried" is listed, which is safe and comfortable
Pyg tutorial (8): calculate a more efficient sparse matrix form
PE格式: 分析IatHook并实现
我也是醉了,Eureka 延迟注册还有这个坑!
【面试:并发篇23:多线程:join】join再理解
分享|智慧消防应急管理平台解决方案(附PDF)
Special symbols in shell
c sqlite ... ...
Tesseract OCR初探
Babbitt | metauniverse daily must read: the popularity of virtual people has decreased, and some "debut is the peak", and the onlookers have dispersed