1
0
mirror of https://github.com/charlienet/go-mixed.git synced 2025-07-18 00:22:41 +08:00

优化redis eval的key重命名

This commit is contained in:
2023-10-26 15:47:33 +08:00
parent 91a5a7d612
commit 5a17236fd7
5 changed files with 30 additions and 16 deletions

View File

@ -49,7 +49,7 @@ func (r renameKey) renameKey(cmd redis.Cmder) {
}
switch strings.ToUpper(cmd.Name()) {
case "SELECT", "EVAL":
case "SELECT":
// 无KEY指令
case
"RENAME", "RENAMENX",
@ -69,6 +69,11 @@ func (r renameKey) renameKey(cmd redis.Cmder) {
case "MSET", "MSETNX":
// 间隔KEYKEY位置规则1,3,5,7
r.rename(args, createSepuence(1, len(args), 2)...)
case "EVAL":
// 命令中包含键数量 EVAL script numkeys [key [key ...]] [arg [arg ...]]
if n, ok := args[2].(int); ok && n > 0 {
r.rename(args, createSepuence(3, 3+n, 1)...)
}
default:
// 默认第一个参数为键值
r.rename(args, 1)