binecy

23
获赞数
3
关注数
18
粉丝数
IP 属地广东
2016-12-24 加入
浏览 9.7k
╭╮╱╭┳━━━┳╮╱╭╮
┃┃╱┃┃╭━╮┃┃╱┃┃
┃╰━╯┃┃┃┃┃╰━╯┃
╰━━╮┃┃┃┃┣━━╮┃
╱╱╱┃┃╰━╯┃╱╱┃┃
个人简介什么都没有
49 声望|新手
springboot
30
reactive-programming
12
源码分析
12
netty
12
源码
9
黄金勋章
暂未获得该勋章
如何获得
白银勋章
暂未获得该勋章
如何获得
1 青铜勋章
个人动态
  • 发布了文章2021-10-28
    Redis核心原理与实践--Redis启动过程源码分析
    该命令启动Redis服务,并指定了配置文件/path/to/redis.conf,给出了两个启动配置项:port、protected-mode。
  • 发布了文章2021-10-12
    实践篇 -- Redis客户端缓存在SpringBoot应用的探究
    Redis由于速度快、性能高,常常作为MySQL等传统数据库的缓存数据库。但由于Redis是远程服务,查询Redis需要通过网络请求,在高并发查询情景中难免造成性能损耗。所以,高并发应用通常引入本地缓存,在查询Redis前先检查本地缓存是否存在数据。假如使用MySQL存储数据...
  • 发布了文章2021-09-27
    Redis核心原理与实践--散列类型与字典结构实现原理
    Redis通常使用字典结构存储用户散列数据。 字典是Redis的重要数据结构。除了散列类型,Redis数据库也使用了字典结构。 Redis使用Hash表实现字典结构。分析Hash表,我们通常关注以下几个问题: (1)使用什么Hash算法? (2)Hash冲突如何解决? (3)Hash表如何扩容?
  • 发布了文章2021-09-19
    Redis核心原理与实践--列表实现原理之quicklist结构
    在上一篇文章《Redis列表实现原理之ziplist结构》,我们分析了ziplist结构如何使用一块完整的内存存储列表数据。同时也提出了一个问题:如果链表很长,ziplist中每次插入或删除节点时都需要进行大量的内存拷贝,这个性能是无法接受的。本文分析quicklist结构如何解决...
  • 发布了文章2021-09-12
    Redis核心原理与实践--列表实现原理之ziplist结构
    Redis内部使用该链表保存运行数据,如主服务下所有的从服务器信息。 但Redis并不使用该链表保存用户列表数据,因为它对内存管理不够友好: (1)链表中每一个节点都占用独立的一块内存,导致内存碎片过多。 (2)链表节点中前后节点指针占用过多的额外内存。 读者可...
  • 发布了文章2021-09-05
    Redis核心原理与实践--字符串实现原理
    Redis中的数据对象server.h/redisObject是Redis对内部存储的数据定义的抽象类型,在深入分析Redis数据类型前,我们先了解redisObject,它的定义如下:
  • 发布了文章2021-08-29
    新书介绍 -- 《Redis核心原理与实践》
    大家好,今天给大家介绍一下我的新书 —— 《Redis核心原理与实践》。 后端开发的同学应该对Redis都不陌生,Redis由于性能极高、功能强大,已成为业界非常流行的内存数据库。
  • 发布了文章2021-07-12
    Reactive Spring实战 -- 响应式MySql交互
    Spring Data R2DBC项目是Spring提供的数据库响应式编程框架。R2DBC是Reactive Relational Database Connectivity的首字母缩写词。 R2DBC是一个API规范倡议,它声明了一个响应式API,由驱动程序供应商实现,并以响应式编程的方式访问他们的关系数据库。实现数据库的响...
  • 发布了文章2021-06-22
    Reactive Spring实战 -- 响应式Kafka交互
    我们知道,Kafka使用Zookeeper负责为kafka存储broker,Consumer Group等元数据,并使用Zookeeper完成broker选主等操作。虽然使用Zookeeper简化了Kafka的工作,但这也使Kafka的部署和运维更复杂。
  • 发布了文章2021-01-31
    Reactive Spring实战 -- 响应式Redis交互
    本文分享Spring中如何实现Redis响应式交互模式。本文将模拟一个用户服务,并使用Redis作为数据存储服务器。本文涉及两个java bean,用户与权益 {代码...} 启动引入依赖 {代码...} 添加Redis配置 {代码...} SpringBoot启动 {代码...} 应用启动后,Spring会自动生成Rea...
  • 发布了文章2021-01-17
    Reactive Spring实战 -- WebFlux使用教程
    WebFlux是Spring 5提供的响应式Web应用框架。它是完全非阻塞的,可以在Netty,Undertow和Servlet 3.1+等非阻塞服务器上运行。本文主要介绍WebFlux的使用。
  • 发布了文章2020-12-22
    Reactive Spring实战 -- 理解Reactor的设计与实现
    Reactor是Spring提供的非阻塞式响应式编程框架,实现了Reactive Streams规范。 它提供了可组合的异步序列API,例如Flux(用于[N]个元素)和Mono(用于[0 | 1]个元素)。
  • 发布了文章2020-11-29
    Netty源码解析 -- FastThreadLocal与HashedWheelTimer
    Netty源码分析系列文章已接近尾声,本文再来分析Netty中两个常见组件:FastThreadLoca与HashedWheelTimer。源码分析基于Netty 4.1.52
  • 发布了文章2020-11-22
    Netty源码解析 -- 对象池Recycler实现原理
    由于在Java中创建一个实例的消耗不小,很多框架为了提高性能都使用对象池,Netty也不例外。本文主要分析Netty对象池Recycler的实现原理。
  • 发布了文章2020-11-15
    Netty源码解析 -- PoolChunk实现原理(jemalloc 3的算法)
    前面文章已经分享了Netty如何引用jemalloc 4算法管理内存。本文主要分享Netty 4.1.52之前版本中,PoolChunk如何使用jemalloc 3算法管理内存。感兴趣的同学可以对比两种算法。源码分析基于Netty 4.1.29
  • 发布了文章2020-11-08
    Netty源码解析 -- PoolSubpage实现原理
    前面文章说了PoolChunk如何管理Normal内存块,本文分享PoolSubpage如何管理Small内存块。源码分析基于Netty 4.1.52
  • 发布了文章2020-11-07
    Netty源码解析 -- PoolChunk实现原理
    首先说明PoolChunk内存组织方式。PoolChunk的内存大小默认是16M,Netty将它划分为2048个page,每个page为8K。PoolChunk上可以分配Normal内存块。Normal内存块大小必须是page的倍数。
  • 发布了文章2020-11-01
    Netty源码解析 -- 内存池与PoolArena
    我们知道,Netty使用直接内存实现Netty零拷贝以提升性能,但直接内存的创建和释放可能需要涉及系统调用,是比较昂贵的操作,如果每个请求都创建和释放一个直接内存,那性能肯定是不能满足要求的。这时就需要使用内存池。即从系统中申请一大块内存,再在上面分配每个...
  • 发布了文章2020-10-30
    Netty源码解析 -- 内存对齐类SizeClasses
    在学习Netty内存池之前,我们先了解一下Netty的内存对齐类SizeClasses,它为Netty内存池中的内存块提供大小对齐,索引计算等服务方法。源码分析基于Netty 4.1.52
  • 发布了文章2020-10-29
    Netty源码解析 -- 零拷贝机制与ByteBuf
    Netty中零拷贝机制主要有以下几种1.文件传输类DefaultFileRegion#transferTo,调用FileChannel#transferTo,直接将文件缓冲区的数据发送到目标Channel,减少用户缓冲区的拷贝(通过linux的sendfile函数)。使用read 和 write过程如下