java重写redis服务端
发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,背景最近研究了下redis的协议、持久化策略以及单线程模型,突然觉得和java很搭配。源码请用力戳这里目的鉴于redis是c编写,java的同学读起来比较费力,所以写java版。让更多的开发者理解高性
千家信息网最后更新 2024年11月24日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安全错误
数据库的锁怎样保障安全
杭州杭州软件开发
军事科学中数据库新技术
透明加密数据库
c如何抓取网页数据库
危害网络安全罪释放证
厦门软件开发技术培训
四川工控软件开发哪家可靠
es搜索引擎是查询数据库吗
迪博内部控制与风险数据库
西安网络安全测试招聘
网络安全迎接检查安排
服务器报H00的原因
网络安全的基本属性范围包括
网络安全设备巡检制度
共享服务器优化方案
linuxdns服务器
乌班图服务器修改网络配置
幻音服务器炸了吗
excel文档读入数据库
默认对服务器中邮件的操作
未转变者怎么去开服务器
保山服务器租用生产厂家
全省网络安全问题
福州搜讯网络技术有限公司
浪潮服务器的管理密码
网络安全网站制作干花
上海带货网络技术有限公司
服务器集成raid卡
内蒙古信息化软件开发服务推广
嵌入式软件开发企业