Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pika有数据一致性校验工具吗? #1175

Closed
CaoGuoJ opened this issue Jul 11, 2022 · 10 comments
Closed

pika有数据一致性校验工具吗? #1175

CaoGuoJ opened this issue Jul 11, 2022 · 10 comments
Assignees
Labels
help wanted redis API redis API compatibility tool

Comments

@CaoGuoJ
Copy link

CaoGuoJ commented Jul 11, 2022

pika是否有数据一致性校验的工具呢?尝试使用 redis-full-check工具好像不行。

@kernelai
Copy link
Collaborator

这个工具应该是可以支持的。有什么报错信息吗?

@CaoGuoJ
Copy link
Author

CaoGuoJ commented Jul 11, 2022

这个工具应该是可以支持的。有什么报错信息吗?
报这个错:
[INFO 2022-07-11-13:43:44 main.go:65]: init log success
[INFO 2022-07-11-13:43:44 main.go:168]: configuration: {192.168.40.7:9221 auth 0 -1 192.168.40.15:9222 auth 0 -1 result.db 3 2 unknown unknown unknown 15000 5 256 5 false 16384 20445 false}
[INFO 2022-07-11-13:43:44 main.go:170]: ---------
[CRITICAL 2022-07-11-13:43:44 full_check.go:232]: parse keyspace failed[strconv.Atoi: parsing "0_Strings": invalid syntax]
panic: parse keyspace failed[strconv.Atoi: parsing "0_Strings": invalid syntax]

goroutine 1 [running]:
full_check/full_check.(*FullCheck).Start(0xc420168000)
/home/zhuzhao.cx/RedisFullCheck/src/full_check/full_check/full_check.go:232 +0x1266
main.main()
/home/zhuzhao.cx/RedisFullCheck/src/full_check/main.go:171 +0x14ab

@CaoGuoJ
Copy link
Author

CaoGuoJ commented Jul 11, 2022

image

@CaoGuoJ
Copy link
Author

CaoGuoJ commented Jul 11, 2022

图片

如图,测试pika有个报错,redis是正常的

@kernelai
Copy link
Collaborator

从报错信息上看是keyspace解析的报错。这点可能的原因是pika的key space 与redis 不一致导致的。可以尝试执行下 info keyspace 1, 等pika结果完成后再执行校验。参考最佳实践16

@CaoGuoJ
Copy link
Author

CaoGuoJ commented Jul 11, 2022

从报错信息上看是keyspace解析的报错。这点可能的原因是pika的key space 与redis 不一致导致的。可以尝试执行下 info keyspace 1, 等pika结果完成后再执行校验。参考最佳实践16

这边执行执行下 info keyspace 1后,Time和key数量显示一致,但redis-full-check依旧报错。

parse keyspace failed[strconv.Atoi: parsing "0_Strings": invalid syntax]
panic: parse keyspace failed[strconv.Atoi: parsing "0_Strings": invalid syntax]

@kernelai
Copy link
Collaborator

ok,要解决这个问题需要对pika的keyspace的返回格式进行修改了。

@kernelai kernelai self-assigned this Jul 11, 2022
@kernelai kernelai added the redis API redis API compatibility label Jul 11, 2022
@AlexStocks
Copy link
Contributor

刘振:需要让 pika keyspace 的返回格式和 redis 保持一致。目前的问题是 info keyspace 1 的执行过程是异步执行的,因为 Pika 的数据是在磁盘上,所以需要再执行一次才能拿到结果。

于雨:Pika 自己启动一个定时任务【时间间隔可配】统计这些 keyspace 信息。

@yaoyinnan
Copy link
Contributor

@lqxhub lqx 加了一个提示,让用户再去执行 info 查一次

@AlexStocks
Copy link
Contributor

        * 用户:pika有数据一致性校验工具吗?尝试使用 redis-full-check工具好像不行。
        * 刘振:ok,要解决这个问题需要对pika的keyspace的返回格式进行修改了。
        * 0429 yuyu 
        * 0527 待认领
        * 0617 lqx 之前加了一个提示,让用户再去执行 info 查一次
        * 0624 不需要继续跟进

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted redis API redis API compatibility tool
Projects
None yet
Development

No branches or pull requests

4 participants