go-redis-parser,项目地址: https://github.com/8090Lambert/go-redis-parser 一个简单、安全的 Redis 解析器。了解到目前存在的 parser,大部分都是单进程解析完成后,再统一输出,拉长了整体的执行时间,决定自己重写一个。它的特点是:离线即用,不必连接线上服务,并且利用 golang 语言本身的协程,实现边解析边写文件内容,非常高效。
简单介绍下这个工具:
支持 Redis 从 2.8 版本至 5.0 版本的,除了 module
外的所有数据类型。包括:
导出 server 所有 key/values,而且会找出现有各类型的 bigkey
(类似redis-cli
的 --bigkeys 参数输出)
go-redis-parser
是可执行的二进制文件(binary file
),可以使用 git
或者 go get
来下载安装
$ git clone https://github.com/8090Lambert/go-redis-parser.git && cd go-redis-parser
$ go install
$ go get github.com/8090Lambert/go-redis-parser
在使用之前,你需要先设置 export PATH=$PATH:$GOPATH/bin
$ go-redis-parser -rdb <dump.rdb> -o <gen-file folder> -type <gen-file type, json or csv, default csv>
目前可导出两种类型的文件:json、csv。这里看下 csv
文件的示例
BigKeys 的输出示例:
# Scanning the rdb file to find biggest keys
-------- summary -------
Sampled 6 keys in the keyspace!
Total key length in bytes is 17
Biggest string found 's' has 1 bytes
Biggest hash found 'h' has 1 fields
Biggest list found 'li' has 2 items
Biggest sortedset found 'zset' has 2 members
Biggest set found 'set' has 2 members
Biggest stream found 'stream' has 3 entries
1 string with 1 bytes
1 hash with 1 fields
1 list with 2 items
1 sortedset with 2 members
1 set with 2 members
1 stream with 3 entries
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.