返回顶部
首页 > 资讯 > 数据库 >java重写redis服务端
  • 397
分享到

java重写redis服务端

2024-04-02 19:04:59 397人浏览 泡泡鱼
摘要

背景 最近研究了下Redis的协议、持久化策略以及单线程模型,突然觉得和java很搭配。源码请用力戳这里 目的 鉴于redis是c编写,java的同学读起来比较费力,所以写java版。让更多的开发者理解高性

背景

最近研究了下Redis的协议、持久化策略以及单线程模型,突然觉得和java很搭配。源码请用力戳这里

目的

鉴于redis是c编写,java的同学读起来比较费力,所以写java版。让更多的开发者理解高性能设计的精髓,同时加深底层传输,存储,索引的认知。

特征

1. 兼容大多数redis原生协议
2. 兼容redis桌面客户端0.9+
3. db分区隔离和事务机制
4. 高级特性:如阻塞队列,发布订阅
5. 数据持久采用jdk原生MappedByteBuffer同步刷盘(虚拟内存技术)
6. key,value存储隔离,仅key空间占虚拟机内存,而value只在使用时才加载,所以优于redis
7. 兼容jedis,spring-data-redis,spring-boot-data等常用redis java客户端工具

基准测试

单机(4核8g),1000连接,随机value set,tps大致在3W+
参考下图,16379为jredis,7003为redis
java重写redis服务端
java重写redis服务端

存储设计

jredis文件结构

默认8个分区,相当于8个db,数据在程序运行时同步写入,重启会自动读取恢复数据到内存。
java重写redis服务端

db文件内容

分为一个key区+三个value类型区,对应磁盘文件结构为:
java重写redis服务端

文件详细介绍

key区加载所有值类型的key
value区仅加载同类型的值
java重写redis服务端

缓冲区设计

线性存储,自定义消息格式,消息定长,一个单元最大存储1024字节,文件写满暂不支持动态扩容。
java重写redis服务端

您可能感兴趣的文档:

--结束END--

本文标题: java重写redis服务端

本文链接: https://lsjlt.com/news/37448.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java重写redis服务端
    背景 最近研究了下redis的协议、持久化策略以及单线程模型,突然觉得和java很搭配。源码请用力戳这里 目的 鉴于redis是c编写,java的同学读起来比较费力,所以写java版。让更多的开发者理解高性...
    99+
    2024-04-02
  • Java如何手写Redis服务端
    小编给大家分享一下Java如何手写Redis服务端,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一,redis通讯与Netty1,tcp连到Redis服务器的客户端建立了一个到6379端口的TCP连接。虽然RESP在技术上...
    99+
    2023-06-22
  • Java手写Redis服务端的实现
    目录零,起因一,redis通讯与Netty1,tcp2,协议3,编解码4,命令处理二,redis的数据结构1,底层主结构2,key3,list4,set5,hash6,zset三,r...
    99+
    2024-04-02
  • java中重写equals和重写hashCode()
    java中重写equals和重写hashCode()记得在刚上初一的时候,第一堂数学课学的是集合,那时候我知道了集合是不允许重复元素存在的。hashCode 方法用于散列集合的查找,equals 方法用于判断两个对象是否相等。为什么重写了 ...
    99+
    2023-05-31
    java 重写equals 重写hashcode()
  • 使用cloudflare重写端口
    使用cloudflare规则 重写端口 家用宽带无法使用80 433等端口 使用cloudflare规则重写端口 原网站地址 www.example.com:4567 重写端口后能用 test.exa...
    99+
    2023-09-09
    服务器 https 网络
  • redis是java写的吗
    否,redis 不是使用 java 编写的。它是使用 c 语言编写的,是一种高性能的 nosql 数据库,能够存储和检索键值对数据。 不,Redis 不是使用 Java 编写的。以上就...
    99+
    2024-04-19
    redis
  • Java Socket服务端具体命令怎么编写
    Java Socket服务端具体命令怎么编写,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java Socket服务端一直在不断发展,我们在使用的时候需要不断的进行客户端的维护...
    99+
    2023-06-17
  • java重载和重写的区别
    java重载和重写的区别:(推荐:java视频教程)定义区别:①重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数。②覆盖(也叫重写)是指在派生类中重新对基类中的虚函数(注意是虚函数)...
    99+
    2018-11-09
    java
  • java重载与重写的区别
    重写(Override) (推荐学习:java课程)从字面上看,重写就是 重新写一遍的意思。其实就是在子类中把父类本身有的方法重新写一遍。子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所...
    99+
    2017-08-04
    java入门 java
  • 【Redis入门篇】| Redis的Java客户端
    目录 一: Redis的Java客户端 1. Jedis快速入门 2. Jedis连接池 3. SpringDataRedis快速入门 4. RedisSerializer配置 5. StringRedisTemplate 图书推荐 一...
    99+
    2023-09-02
    java redis 数据库
  • 深入理解java重载和重写
    目录重载1.构造器的重载2.方法的重载(overload)重写区分方法的重载和重写总结重载 1.构造器的重载 因为构造器的名字必须与类名相同,所以同一个类的所有构造器名肯定相同,构成...
    99+
    2024-04-02
  • 【JAVA】关于重写(Override)与重载(Overload)
    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 文章目录 前言方法重载(Overload)重载的规则示例代码方法重写(Override)重写的规则示例代码...
    99+
    2023-09-17
    java python 开发语言
  • java中重写是什么
    当子类需要父类的功能,而子类有新的内容,可以重写父类中的方法。在实际开发过程中,随着代码量的逐渐增加,维护成了一个很大的问题,如果需要对某个方法进行修改,其本身代码以及其子类代码都会受到影响,而重写则很好的解决了这个问题。方法重写又称为方法...
    99+
    2018-10-06
    java入门 java
  • Python 3.5 HTTP服务器端重
    #!/usr/bin/python3 import sys import socketserver import socket import http.server import threading import io # Use su...
    99+
    2023-01-31
    服务器端 Python HTTP
  • Redis中AOF重写是怎么工作的
    在Redis中,AOF(Append Only File)重写是通过AOF重写机制来实现的。AOF重写的目的是减小AOF文件的大小,...
    99+
    2024-05-07
    Redis
  • 如何在wind服务器重启redis服务
    wind服务器重启redis服务的方法:快捷键win+R → 输入“Services.msc”打开windows服务窗口 → 找到redis服务 → 右键停止该服务 → 再右键重新启动。快捷键win+R打开运行对话框,输入“cmd”打开cm...
    99+
    2024-04-02
  • ⑩【Redis Java客户端】:Jedis、SpringDataRedis、StringRedisTemplate
    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Jedis、SpringDataRedis、St...
    99+
    2023-12-23
    redis java 数据库 jedis spring SpringDataRedis nosql
  • 浅谈java中为什么重写equals后需要重写hashCode
    目录一、先看现象二、为什么要重写hashCode三、实现代码四、总结一、先看现象 public class TestDemo { public static void ...
    99+
    2024-04-02
  • Java中 equals 重写时为什么一定也要重写 hashCode
    目录1.equals 方法2.hashCode 方法2.1 hashCode 使用3.为什么要一起重写?3.1 Set 正常使用3.2 Set 集合的“异常”...
    99+
    2024-04-02
  • Java中为什么重写equals()也需要重写hashCode方法
    Java中为什么重写equals()也需要重写hashCode() 所有类默认继承Object类 先看一下Object源码 package java.lang; public cla...
    99+
    2023-05-17
    Java 重写equals()为什么重写hashCode() Java 重写equals() java重写hashCode 为什么equals要重写hashcode
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作