MCPcopy
hub / github.com/redis/go-redis / eval

Method eval

scripting_commands.go:46–69  ·  view source on GitHub ↗
(ctx context.Context, name, payload string, keys []string, args ...interface{})

Source from the content-addressed store, hash-verified

44}
45
46func (c cmdable) eval(ctx context.Context, name, payload string, keys []string, args ...interface{}) *Cmd {
47 cmdArgs := make([]interface{}, 3+len(keys), 3+len(keys)+len(args))
48 cmdArgs[0] = name
49 cmdArgs[1] = payload
50 cmdArgs[2] = len(keys)
51 for i, key := range keys {
52 cmdArgs[3+i] = key
53 }
54 cmdArgs = appendArgs(cmdArgs, args)
55 cmd := NewCmd(ctx, cmdArgs...)
56
57 // it is possible that only args exist without a key.
58 // rdb.eval(ctx, eval, script, nil, arg1, arg2)
59 if len(keys) > 0 {
60 cmd.SetFirstKeyPos(3)
61 }
62 _ = c(ctx, cmd)
63 if err := cmd.Err(); err != nil {
64 if HasErrorPrefix(err, "NOSCRIPT") {
65 cmd.SetErr(ErrNoScript)
66 }
67 }
68 return cmd
69}
70
71func (c cmdable) ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd {
72 args := make([]interface{}, 2+len(hashes))

Callers 4

EvalMethod · 0.95
EvalROMethod · 0.95
EvalShaMethod · 0.95
EvalShaROMethod · 0.95

Calls 6

appendArgsFunction · 0.85
NewCmdFunction · 0.85
HasErrorPrefixFunction · 0.85
SetFirstKeyPosMethod · 0.65
ErrMethod · 0.65
SetErrMethod · 0.65

Tested by

no test coverage detected