IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 为什么Redis单线程却比多线程快 -> 正文阅读

[大数据]为什么Redis单线程却比多线程快

redis三大特点

1.Redis是基于内存,内存的读写是非常快的
2.Redis是单线程,省去了线程之间的切换并且防止了死锁现象发生
3.Redis采用多路复用的技术,可以处理并发的连接(客户端连接不占用线程资源,当指令发送成功之后通过单线程)
在这里插入图片描述

为什么Redis是单线程

因为Redis是基于内存,cpu已经无法成为Redis的瓶颈,Redis最有可能影响性能的就是机器的内存与网络带宽,并且可以使用多开客户端的方案解决并发连接,既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。

单线程的优劣势

1.优点
单线程逻辑清晰,代码简单
2.缺点
无法发挥多核cpu的全部性能,但是可以使用多开客户端的方式解决并发的问题。

题外

1.原子性
原子性指的是一条计算机指令发出之后不会被其他线程影响而终止。

redis 的多路复用很好的实现了程序指令的原子性
比如 java 中i++并不是原子性操作他其实是经过了三个步骤
1.从内存中取出 值
2.i++
3.将i++的值赋值给内存

问 两个线程进行100次 i++ 最大值是多少? 最小值是多少?

(下面是我复制过来的)

假设两个线程的执行步骤如下:

  1. 线程A执行第一次i++,取出内存中的i,值为0,存放到寄存器后执行加1,此时CPU1的寄存器中值为1,内存中为0;

  2. 线程B执行第一次i++,取出内存中的i,值为0,存放到寄存器后执行加1,此时CPU2的寄存器中值为1,内存中为0;

  3. 线程A继续执行完成第99次i++,并把值放回内存,此时CPU1中寄存器的值为99,内存中为99;

  4. 线程B继续执行第一次i++,将其值放回内存,此时CPU2中的寄存器值为1,内存中为1;

  5. 线程A执行第100次i++,将内存中的值取回CPU1的寄存器,并执行加1,此时CPU1的寄存器中的值为2,内存中为1;

  6. 线程B执行完所有操作,并将其放回内存,此时CPU2的寄存器值为100,内存中为100;

  7. 线程A执行100次操作的最后一部分,将CPU1中的寄存器值放回内存,内存中值为2;
    【其实他想什么时候从内存中拿 什么时候从cpu返回都是可以的可能的 我们这说的是一种可能】

答:最大值是200 最小是2

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-28 00:10:17  更:2021-09-28 00:10:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 14:24:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码