java重写redis服务端
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,背景最近研究了下redis的协议、持久化策略以及单线程模型,突然觉得和java很搭配。源码请用力戳这里目的鉴于redis是c编写,java的同学读起来比较费力,所以写java版。让更多的开发者理解高性
千家信息网最后更新 2025年02月01日java重写redis服务端
背景
最近研究了下redis的协议、持久化策略以及单线程模型,突然觉得和java很搭配。源码请用力戳这里
目的
鉴于redis是c编写,java的同学读起来比较费力,所以写java版。让更多的开发者理解高性能设计的精髓,同时加深底层传输,存储,索引的认知。
特征
1. 兼容大多数redis原生协议2. 兼容redis桌面客户端0.9+3. db分区隔离和事务机制4. 高级特性:如阻塞队列,发布订阅5. 数据持久采用jdk原生MappedByteBuffer同步刷盘(虚拟内存技术)6. key,value存储隔离,仅key空间占虚拟机内存,而value只在使用时才加载,所以优于redis7. 兼容jedis,spring-data-redis,spring-boot-data等常用redis java客户端工具
基准测试
单机(4核8g),1000连接,随机value set,tps大致在3W+
参考下图,16379为jredis,7003为redis
存储设计
jredis文件结构
默认8个分区,相当于8个db,数据在程序运行时同步写入,重启会自动读取恢复数据到内存。
db文件内容
分为一个key区+三个value类型区,对应磁盘文件结构为:
文件详细介绍
key区加载所有值类型的key
value区仅加载同类型的值
缓冲区设计
线性存储,自定义消息格式,消息定长,一个单元最大存储1024字节,文件写满暂不支持动态扩容。
文件
存储
内存
数据
类型
设计
客户
客户端
消息
结构
同步
隔离
三个
下图
事务
单元
单机
同学
同时
基准
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
成都普洋安彬软件开发工作室
数据库823错误
Pi数据库有哪些软件
前端平台软件开发
传奇物品数据库添加魔血石
企业app软件开发价格
2021年网络安全人才缺口
维持网址的服务器算不算常设机构
北京管理网络技术服务介绍
国内外无线网络技术对比
联想中国国产服务器
提取数据库数据合成一个报表
数据库取消唯一
单机数据库管理系统最新中文版
中企聚易网络技术
数据库设计描述结构
无法和服务器建立数据链接
长沙ios软件开发公司
电力网络安全监测装置的重要性
后端代码是怎么操作数据库
弹性云服务器和实例区别
达梦数据库提交事务命令
怎么保存论坛数据库
安卓软件开发便宜
如何把服务器装到云服务
闵行区推广软件开发价格对比
简述jdbc的连接数据库方法
天津智慧食堂一站式软件开发
空数据库access
网络安全的重要性的作文