redis之所以可以高效的执行命令,单线程每秒qps达到10w左右,是因为起io多路复用技术效率很高。 io多路复用解决了什么问题? 没有io多路复用,那么当服务器操作某一个fd执行read的时候,如果fd对应的客户端没有执行写操作,那么服务端就会阻塞,这个时候客户端2来了数据,服务端就没办法读取了 ...
分类:
其他好文 时间:
2020-05-24 10:13:55
阅读次数:
43
redis号称单机QPS可达10万。为什单线程的redis竟然能达到这么高的qps? 网上有很多大佬已经给我们总结好了: 1、完全是内存操作 2、单线程处理 3、高效的数据结构,redis有自己的一套数据结构 4、使用多路复用i/o模型,非阻塞 5、其他方面的优化 我想多问几个问题: 第一点,red ...
分类:
其他好文 时间:
2020-05-24 00:26:31
阅读次数:
71
为什么用Redis 是什么 一个小程序 缓存 & 数据库 单线程worker 新版本:IO threads epoll:多路复用 速度 硬盘:寻址时间ms,带宽(吞吐)百兆~G/s(固态硬盘pci-e nvme) 内存:寻址时间ns,比硬盘快10w倍 文件 全量扫描(高IO),过大(T级)时,查询会 ...
分类:
数据库 时间:
2020-05-22 19:09:54
阅读次数:
97
JS六大基础数据类型: Number String Null Undefined Object Boolean Symbol 引用类型: function Object 1、js 同异步原理 JS 是一个单线程语言 所以没办法同时进行两个线程 所以就要用到异步 异步的形式 ES5 的回调函数 ES6 ...
分类:
Web程序 时间:
2020-05-22 17:22:57
阅读次数:
59
1. Redis 和 memcache 的区别 1. memcache 多线程 ,redis 单线程 2. redis 支持5种数据类型,memcache只支持一种字符串类型 3. 内存管理 redis : redis使用malloc和free来进行内存分配,会导致内存碎片,加重操作系统内存管理器的 ...
分类:
系统相关 时间:
2020-05-22 17:07:41
阅读次数:
63
简介 什么是RPC RPC(Remote Procedure Call, 远程过程调用), 一般用来实现部署在不同机器上的系统之间的方法调用. 使程序能像访问本地资源一样, 通过网络传输去访问远端系统资源. 对客户端来说, 传输层用什么协议, 序列化, 反序列化过程都是透明的, 不用管. Java ...
分类:
其他好文 时间:
2020-05-22 17:03:19
阅读次数:
44
参考:https://mp.weixin.qq.com/s/DZkGRTan2qSzJoDAx7QJag 建议阅读:《深入理解Java虚拟机》相关章节 多线程下的 原子性 可见性 指令重排序 无法保证(单线程 可以保证) static int mainMemoryVariable=0; 线程1: m ...
分类:
编程语言 时间:
2020-05-21 21:06:23
阅读次数:
50
简介 redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库 其具有以下特点:开源、多种数据结构、基于键值的存储服务器、高性能、功能服务 优点:数据类型丰富、效率高、支持集群、支持持久化 缺点:单进程单线程,长命令可能会导致redis阻塞、集群下多key同时操作 ...
分类:
其他好文 时间:
2020-05-21 19:55:18
阅读次数:
79
原文:第三十一节:扫盲并发和并行、同步和异步、进程和线程、阻塞和非阻塞、响应和吞吐等 一. 并发和并行 操作系统扫盲: 1. 对于单核cpu而言(不管单核单线程也好,单核多线程也罢),同一时间只能干一件事!!为了看起像可以“同时干多件事”,windows操作系统把cpu的时间划分为长短基本相同的时间... ...
分类:
编程语言 时间:
2020-05-21 09:20:02
阅读次数:
69
redis 是什么? 是完全开源免费的,用c语言编写的,是一个单线程,高性能的(key/value)内存数据库,基于内存运行并支持持久化的nosql数据库 能干嘛? 主要是用来做缓存,但不仅仅只能做缓存,比如:redis的计数器生成分布式唯一主键,redis实现分布式锁,队列,会话缓存。 去哪下? ...
分类:
其他好文 时间:
2020-05-20 14:37:12
阅读次数:
50