Golang Go语言中的go-redis-parser(更高效的 Redis 解析工具,支持查找大 key)

发布于 1周前 作者 bupafengyu 来自 Go语言

Golang Go语言中的go-redis-parser(更高效的 Redis 解析工具,支持查找大 key)

go-redis-parser

go-redis-parser,项目地址: https://github.com/8090Lambert/go-redis-parser 一个简单、安全的 Redis 解析器。了解到目前存在的 parser,大部分都是单进程解析完成后,再统一输出,拉长了整体的执行时间,决定自己重写一个。它的特点是:离线即用,不必连接线上服务,并且利用 golang 语言本身的协程,实现边解析边写文件内容,非常高效

简单介绍下这个工具:

Feature

支持 Redis 从 2.8 版本至 5.0 版本的,除了 module外的所有数据类型。包括:

  • String
  • Hash
  • List
  • Set
  • SortedSed
  • Stream(敲黑板,重点重点重点,重要的事情说三遍)

Other

导出 server 所有 key/values,而且会找出现有各类型的 bigkey(类似redis-cli的 --bigkeys 参数输出)

Installation

go-redis-parser 是可执行的二进制文件(binary file),可以使用 git 或者 go get 来下载安装

via git

$ git clone https://github.com/8090Lambert/go-redis-parser.git && cd go-redis-parser
$ go install

via go

$ go get github.com/8090Lambert/go-redis-parser

Using

在使用之前,你需要先设置 export PATH=$PATH:$GOPATH/bin

$ go-redis-parser -rdb <dump.rdb> -o <gen-file folder> -type <gen-file type, json or csv, default csv>

Generate file

目前可导出两种类型的文件:json、csv。这里看下 csv 文件的示例

BigKeys outputs

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


更多关于Golang Go语言中的go-redis-parser(更高效的 Redis 解析工具,支持查找大 key)的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

5 回复

之前用了一个 python 的分析工具,安装花了半天。就凭这一点,要给 go 写的点个赞。

更多关于Golang Go语言中的go-redis-parser(更高效的 Redis 解析工具,支持查找大 key)的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


感谢支持,这个安装就是可执行二进制文件,如果觉得好用,麻烦顺手给个 star~

好东西 👍

借楼也贴一下我最近在写的 reids 客户端: https://github.com/laixintao/iredis

https://www.iredis.io/

带语法高亮和自动补全。

您好!关于您提到的Go语言中的go-redis-parser,这是一个专注于提升Redis数据解析效率的工具,尤其在处理大型数据集(如查找大key)时表现出色。以下是一些关键点,希望能帮助您更好地理解和利用这个库:

  1. 高效解析go-redis-parser优化了Redis协议的解析过程,减少了内存占用和CPU开销,使得在处理大量数据时速度更快。

  2. 大key检测:该工具支持快速识别Redis中的大key,这对于数据库性能优化和故障排查至关重要。大key可能导致数据库响应变慢,甚至阻塞,因此及时发现并处理它们是非常重要的。

  3. 兼容性:确保go-redis-parser与您的Redis服务器版本兼容,以充分利用其性能优势。同时,它也应当与您的Go语言环境兼容,以便无缝集成。

  4. 集成与扩展:该库易于集成到现有的Go项目中,同时提供了足够的灵活性,允许开发者根据需要进行扩展或定制。

  5. 文档与社区:查阅go-redis-parser的官方文档,了解如何正确使用和优化该工具。同时,参与相关社区讨论,获取更多实践经验和最佳实践。

总之,go-redis-parser是一个强大的Redis解析工具,特别适用于需要高效处理大量Redis数据的场景。在决定使用之前,请确保充分评估其性能和兼容性,以便为您的项目带来最大价值。

回到顶部