mydb是一个可持久化的大容量硬盘版的redis存储服务,兼容string、json 数据格式的接口; 解决redis由于存储数据量巨大而导致内存不够用的容量瓶颈,可以当做一个大容量的 HashMap 来用。
如果你的业务场景的数据比较大,Redis 很难支撑, 比如大于50G,或者你的数据很重要,不允许断电丢失, 那么使用mydb 就可以解决你的问题。 而在实际使用中,mydb的性能大约是Redis的50%。
由于mydb是基于内存和文件来存放数据, 所以性能肯定比Redis低一些, 可以使用使用SSD盘来存放数据, 尽可能跟上Redis的性能。
不同于Redis,mydb的数据主要存储在磁盘中,这就使得其在做数据备份时有天然的优势,可以直接通过文件拷贝实现
mydb 并不会取代 Redis,mydb 是作为 Redis 的一个补充,从上面的对比可以看出 mydb 的主要应用场景在于:
业务量并没有那么大,使用 Redis 内存成本太高
数据量很大,使用 Redis 单个服务器内存无法承载
经常出现时间复杂度很高的请求让 Redis 间歇性阻塞
因此对于对性能要求非常高,但是数据量非常小的场景,推荐业务使用 Redis。
同一项目或者产品mydb,Redis,Redis-cluster 均在线上使用的情况。
如果想快速试用mydb,需要 jdk8环境。
# 1. 解压文件
tar zxf mydbX.Y.Z_bin.tar.gz
# 2. 运行目录
cd mydbX.Y.Z
# 3. 运行mydb:
sh start.sh
1.下载安装 jdk8,下载源文件
git clone https://github.com/supermy/rocksdb-service
2.安装 maven,编译打包:
mvn -DskipTests=true package
3.切换的 shell目录:
sh start.sh 运行
4.观察输出日志
tail -f mydb.log
若启动失败,通过修改 application.yam,重新设置启动端口,已经数据库的保存路径
restful 支持 json
单数据处理
put:curl -XPUT "http://127.0.0.1:9008/api/mydb/abc" -d '{"a"=12,"b"=c}'
get:curl http://127.0.0.1:9008/api/mydb/abc
del:curl -XDELETE "http://127.0.0.1:9008/api/mydb/abc"
批量数据处理,采用 Json 格式,采用 Flume 批量数据生产与消费。
约定格式'{a:{"a":1},b:{b:1}}',a,b 为主键,{"a":1}、{b:1}为数据 ;
post: curl -XPOST "http://127.0.0.1:9008/api/mydb" -d '{a:{"a":1},b:{b:1}}'
delete: curl "http://127.0.0.1:9008/api/mydb?pre=a" 根据前缀key批量删除数据
get: curl "http://127.0.0.1:9008/api/mydb?pre=a" 根据前缀key查询数据
数据的备份与恢复
查看数据状态:
http://127.0.0.1:9000/rocksdb/status
构造数据:
http://127.0.0.1:9000/rocksdb/gendata
备份数据:
http://127.0.0.1:9000/rocksdb/backdb
删除指定备份数据
http://127.0.0.1:9000/rocksdb/delbackdb?backid=11
清理备份数据,保留几分数据
http://127.0.0.1:9000/rocksdb/purebackdb?amount=2
恢复最新备份数据
http://127.0.0.1:9000/rocksdb/restorbackdb
恢复指定备份数据
http://127.0.0.1:9000/rocksdb/restorbackdbid?backid=14
可以采用F6(Nginx+lua) 进行鉴权
可以采用 F6(Nginx+lua) 对数据进行编码与解码
可以采用 F6(Nginx+lua) 对数据进行压缩与解压
相同配置服务端、客户机虚机各一台:
处理器:4核
内存:4G
操作系统:Debian 8.7
ab -c 200 -n 8000 "http://127.0.0.1:9008/api/mydb?pre=a"
QQ群:201108549
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。