网站首页 > 精选文章 / 正文
公司有一个小程序,采用的是Redis数据库,由于数据增长,Redis已经不能满足性能需求,于是我自己开发了一个基于硬盘的数据库,该数据库具备以下特点:
- 基于硬盘:数据全部存储在硬盘上,不但大幅节省了内存使用,而且安全可靠;
- 兼容Redis协议:各种编程语言和Redis客户端,采用Redis单节点连接模式,连接该数据库即可。
从以上两张图可以看出,本数据库高度兼容Redis,各种编程语言和Redis可视化工具,只需要修改IP和端口号,就可以使用该数据库。并且内存占用低,上述数据大约3.3G左右,但是实际内存占用只有300多M,而且其中150MB是数据库自身固定占用。
- 高性能:测试机是DDR4 3200MHz,机械硬盘ST4000NM0035-1V4107,执行hget指令,结果如下:
测试场景:某个Hash表,有30万个key-value,每个value大约1280字节,测试hget一万次。
从上图可以看出,本数据库的性能已经可以与Redis相媲美了。而且只是在机械硬盘中取得的速度哦,如果换成SSD固态硬盘,这个速度一定会超越Redis的。
- 完全自主开发:基于GO语言开发,完全自主开发,没有参考任何开源或闭源代码。只要Go语言支持的操作系统,本数据库都支持。
- 超越Redis:hash表支持使用lrange指令,这对于存储历史流水来说,尤其有用,再也不用一张list流水表存储流水历史,一张hash表用来更新流水详情。
- 同一个数据表,有卸载和安装两种状态,卸载状态下:数据表完全不占用任何内存,但是性能会降低。安装状态下:以一个30万key-value的hash表为例,占用内存大约30万*14字节=4200KB,无论每个value有10个字节还是100MB,这个数据表都只占用4200KB的内存。
- list优化:针对list,进一步进行了优化,经过测试,某个有30万条记录的list,执行一万次lrange 0 50 ,Redis消耗1.60秒,本数据库在最快模式下2.61秒,在最慢模式下6.6秒。
- 无限可能:得益于完全自主开发,可以有无限可能,比如,如果让Redis支持条件查询,那会带来多少惊喜?
Tags:redis客户端
猜你喜欢
- 2025-03-28 Redis分布式锁如何实现锁重入机制?
- 2025-03-28 国人独立开源的 Nodejs ioredis 卖了 Redis 官方 300w 美金?
- 2025-03-28 Redis安装教程入门(Linux版本)(linux redis rpm安装)
- 2025-03-28 只需5分钟,完成Redis所有命令操作~
- 2025-03-28 Redis 常见面试问题总结和答案(redisson面试题)
- 2025-03-28 Redis 安装(redis安装Windows)
- 2025-03-28 Python操作Redis入门指引(python redis客户端)
- 2025-03-28 带你走进 Redis(带你走进___作文800字)
- 2025-03-28 Redisson 3.23.1 正式发布,官方推荐的 Redis 客户端
- 2025-03-28 redis安装(源码编译安装)(redis 编译安装)