摘要:
一、I/O 概念 1.1 缓冲区 缓冲区是所有 I/O 的基础,I/O 讲的无非就是把数据移进或移出缓冲区;进程执行 I/O 操作,就是向操作系统发出请求,让它要么把缓冲区的数据排干(写),要么填充缓冲区(读)。 Java 进程发起 Read 请求加载数据大致的流程图 进程发起 Read 请求之后, 阅读全文
摘要:
一、I/O 概念 1.1 缓冲区 缓冲区是所有 I/O 的基础,I/O 讲的无非就是把数据移进或移出缓冲区;进程执行 I/O 操作,就是向操作系统发出请求,让它要么把缓冲区的数据排干(写),要么填充缓冲区(读)。 Java 进程发起 Read 请求加载数据大致的流程图 进程发起 Read 请求之后, 阅读全文
摘要:
在谈论Kafka高性能时不得不提到零拷贝。Kafka通过采用零拷贝大大提供了应用性能,减少了内核和用户模式之间的上下文切换次数。那么什么是零拷贝,如何实现零拷贝呢? 什么是零拷贝 WIKI中对其有如下定义: "Zero-copy" describes computer operations in w 阅读全文
摘要:
- 前言 - 零拷贝(Zero-Copy)是一个大家耳熟能详的概念,那么,具体有哪些框架会使用到零拷贝呢?在思考这个问题之前,让我们先一起探寻一下零拷贝机制的底层原理。 - 概念篇 - 1、零拷贝是什么? "零拷贝"中的"拷贝"是指操作系统在I/O操作中,将数据从一个内存区域复制到另外一个内存区域, 阅读全文
摘要:
前言 磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝、直接 I/O、异步 I/O 等等,这些优化的目的就是为了提高系统的吞吐量,另外操作系统内核中的磁盘高速缓存区,可以有效的减少磁盘的访问次数。 这次,我们就以「文件传输」作为切入点, 阅读全文
摘要:
正文如下: 前言 从字面意思理解就是数据不需要来回的拷贝,大大提升了系统的性能;这个词我们也经常在java nio,netty,kafka,RocketMQ等框架中听到,经常作为其提升性能的一大亮点;下面从I/O的几个概念开始,进而在分析零拷贝。 I/O概念 1.缓冲区 缓冲区是所有I/O的基础,I 阅读全文
摘要:
前言 从字面意思理解就是数据不需要来回的拷贝,大大提升了系统的性能;这个词我们也经常在java nio,netty,kafka,RocketMQ 等框架中听到,经常作为其提升性能的一大亮点; 下面从I/O的几个概念开始,进而在分析零拷贝。 I/O概念 1.缓冲区缓冲区是所有I/O的基础,I/O讲的无 阅读全文
摘要:
1|0何为热点key问题 从名字上可以理解,Redis中的热key就是在Redis中频繁被访问的数据,例如热点新闻,热点评论,双十一商品等等。当某一热key的请求到Server主机时,这样会造成流量过于集中,达到物理网卡上限,从而导致这台redis的主机资源不足,甚至宕机。那接下来这个key的请求, 阅读全文
摘要:
前言 最近在学习Redis相关知识,看了阿里的redis开发规范,以及Redis开发与运维这本书。分使用规范、有坑的命令、项目实战操作、运维配置四个方向。整理了使用Redis的21个注意点,希望对大家有帮助,一起学习哈 1、Redis的使用规范 1.1、 key的规范要点 我们设计Redis的key 阅读全文
摘要:
一、Redis 基础数据结构 1. StringRedis 里的字符串是动态字符串,会根据实际情况动态调整。类似于 Go 里面的切片-slice,如果长度不够则自动扩容。至于如何扩容,方法大致如下:当 length 小于 1M 的时候,扩容规则将目前的字符串翻倍;如果 length 大于 1M 的话 阅读全文
摘要:
前言 如果你是一名后端人员,对于 Redis 应该都不会陌生,Redis实战笔记,现在大部分的项目都已经运用到了 Redis 作为缓存层的搭建。面试过程中也越来越爱问关于 Redis 相关中的知识。今天我们一起来聊聊 Redis 集群中那些爱考,并且都需要知道的相关知识。 1、什么是Redis,Re 阅读全文
摘要:
本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内 阅读全文
摘要:
单线程为什么能支持10w+的QPS? 我们经常听到Redis是一个单线程程序。准确的说Redis是一个多线程程序,只不过请求处理的部分是用一个线程来实现的。 阿里云对Redis QPS的测试结果如下所示 「Redis是如何用单线程来实现每秒10w+的QPS的呢?」 使用IO多路复用 非CPU密集型任 阅读全文
摘要:
Redis 大key Redis使用过程中经常会有各种大key的情况, 比如: 单个简单的key存储的value很大 hash, set,zset,list 中存储过多的元素(以万为单位) 由于redis是单线程运行的,如果一次操作的value很大会对整个redis的响应时间造成负面影响,所以,业务 阅读全文
摘要:
redis作为一个高性能内存数据库,在实际业务中应用的非常广泛,虽然redis的性能很好,但是在实际使用过程中,如果使用不当,也会造成一些性能问题,比如数据中存在大key。什么是大key?顾名思义就是单个key中的数据比较大,通常来说,单个key的value值不会很大,这种情况下,key的读取,删除 阅读全文
摘要:
什么是 Redis 大 key单个key 存储的 value 很大hash, set,zset,list 结构中存储过多的元素可能存在 Redis 大 key 的业务场景1.配送范围特别大的门店2.促销活动特别多的门店、商家等3.高频用户下的订单列表... Redis 大 key 的危害OPS 低也 阅读全文
|