NONO9527 / java-redis

redis-server created by java

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Java-Redis

Java-Redis

GitHub

目前基于Java语言实现的功能最完整的Redis-Server,适用于Java程序员学习并实践Redis缓存底层原理。

特点

  • 基于netty nio
  • 基于 RESP 协议并支持redis-cli,jedis等客户端操作
  • 拥有五种数据对象,支持六十多个常用操作命令
  • 支持RDB、AOF持久化机制
  • 支持惰性、定时两种过期策略;
  • 支持基于jvm内存的8种驱逐策略并可自行扩展
  • 支持Redis事务
  • 吞吐量与延迟与 Redis 几乎相等甚至部分测试略优

文档

java-redis-doc

每篇文档介绍了一个模块的底层原理以及相应的实现

使用

使用启动类 ServerStart 启动即可, 支持 fluent 风格,可以自行配置

        new RedisNetServer()
                .ip("0.0.0.0")	// 地址
                .port(6379)	// 端口号()
                .channelOption(new DefaultChannelSelectStrategy())	// io模型
                .dbNum(16)	// 数据库数量
                .evictStrategy(Evict.NO_EVICT())	// 逐出策略
                .expireStrategy(Expire.DEFAULT_EXPIRE_STRATEGY())	// 过期策略
                .aof(false)	// 是否开启 AOF 持久化
                .rdb(false)	// 是否开启 RDB 持久化
                .init()
                .start();

由于本项目基于原版 Redis 协议格式开发,所以兼容各种客户端连接,如 redis-clijedis等。

性能测试

Redis设计与实现07 性能测试 (isheihei.cn)

参考资料:

About

redis-server created by java

License:MIT License


Languages

Language:Java 100.0%