Skip to content

Command Comparison Chart

Below is a comprehensive chart comparing common Valkey commands between go-redis and Valkey GLIDE:

Commandgo-redisValkey GLIDE
Connectredis.NewClient(&redis.Options{Addr: "localhost:6379"})glide.NewClient(&config.ClientConfiguration{Addresses: []config.NodeAddress{{Host: "localhost", Port: 6379}}})
Clusterredis.NewClusterClient(&redis.ClusterOptions{Addrs: []string{"127.0.0.1:6379"}})glide.NewClusterClient(&config.ClusterClientConfiguration{Addresses: []config.NodeAddress{{Host: "127.0.0.1", Port: 6379}}})
Authrdb.Auth(ctx, "password")Set in config.ServerCredentials{Password: "password"} during connection
Select DBrdb.Select(ctx, 1)Set DatabaseId: 1 in configuration
Commandgo-redisValkey GLIDE
SETrdb.Set(ctx, "key", "val", 0)client.Set(ctx, "key", "val")
GETrdb.Get(ctx, "key")client.Get(ctx, "key")
SETEXrdb.SetEx(ctx, "key", "val", time.Hour)client.SetWithOptions(ctx, "key", "val", options.SetOptions{Expiry: &options.Expiry{Type: options.Seconds, Count: 3600}})
SETNXrdb.SetNX(ctx, "key", "val", 0)client.SetWithOptions(ctx, "key", "val", options.SetOptions{ConditionalSet: options.OnlyIfDoesNotExist})
MSETrdb.MSet(ctx, map[string]interface{}{"k1": "v1"})client.MSet(ctx, map[string]string{"k1": "v1"})
MGETrdb.MGet(ctx, "key1", "key2")client.MGet(ctx, []string{"key1", "key2"})
INCRrdb.Incr(ctx, "counter")client.Incr(ctx, "counter")
DECRrdb.Decr(ctx, "counter")client.Decr(ctx, "counter")
INCRBYrdb.IncrBy(ctx, "counter", 5)client.IncrBy(ctx, "counter", 5)
DECRBYrdb.DecrBy(ctx, "counter", 5)client.DecrBy(ctx, "counter", 5)
APPENDrdb.Append(ctx, "key", "val")client.Append(ctx, "key", "val")
GETRANGErdb.GetRange(ctx, "key", 0, 3)client.GetRange(ctx, "key", 0, 3)
SETRANGErdb.SetRange(ctx, "key", 0, "val")client.SetRange(ctx, "key", 0, "val")
Commandgo-redisValkey GLIDE
DELrdb.Del(ctx, "key1", "key2")client.Del(ctx, []string{"key1", "key2"})
EXISTSrdb.Exists(ctx, "key1", "key2")client.Exists(ctx, []string{"key1", "key2"})
EXPIRErdb.Expire(ctx, "key", 10*time.Second)client.Expire(ctx, "key", 10*time.Second)
TTLrdb.TTL(ctx, "key")client.TTL(ctx, "key")
KEYSrdb.Keys(ctx, "pattern")client.Keys(ctx, "pattern")
SCANrdb.Scan(ctx, cursor, "*", 10)client.Scan(ctx, cursor)
RENAMErdb.Rename(ctx, "old", "new")client.Rename(ctx, "old", "new")
RENAMENXrdb.RenameNX(ctx, "old", "new")client.RenameNX(ctx, "old", "new")
Commandgo-redisValkey GLIDE
HSETrdb.HSet(ctx, "hash", "k1", "v1", "k2", "v2")client.HSet(ctx, "hash", map[string]string{"k1": "v1", "k2": "v2"})
HGETrdb.HGet(ctx, "hash", "field")client.HGet(ctx, "hash", "field")
HMSETrdb.HMSet(ctx, "hash", map[string]interface{}{"k1": "v1"})client.HSet(ctx, "hash", map[string]string{"k1": "v1"})
HMGETrdb.HMGet(ctx, "hash", "k1", "k2")client.HMGet(ctx, "hash", []string{"k1", "k2"})
HGETALLrdb.HGetAll(ctx, "hash")client.HGetAll(ctx, "hash")
HDELrdb.HDel(ctx, "hash", "k1", "k2")client.HDel(ctx, "hash", []string{"k1", "k2"})
HEXISTSrdb.HExists(ctx, "hash", "field")client.HExists(ctx, "hash", "field")
Commandgo-redisValkey GLIDE
LPUSHrdb.LPush(ctx, "list", "a", "b")client.LPush(ctx, "list", []string{"a", "b"})
RPUSHrdb.RPush(ctx, "list", "a", "b")client.RPush(ctx, "list", []string{"a", "b"})
LPOPrdb.LPop(ctx, "list")client.LPop(ctx, "list")
RPOPrdb.RPop(ctx, "list")client.RPop(ctx, "list")
LRANGErdb.LRange(ctx, "list", 0, -1)client.LRange(ctx, "list", 0, -1)
Commandgo-redisValkey GLIDE
SADDrdb.SAdd(ctx, "set", "a", "b")client.SAdd(ctx, "set", []string{"a", "b"})
SMEMBERSrdb.SMembers(ctx, "set")client.SMembers(ctx, "set")
SREMrdb.SRem(ctx, "set", "a", "b")client.SRem(ctx, "set", []string{"a", "b"})
SISMEMBERrdb.SIsMember(ctx, "set", "a")client.SIsMember(ctx, "set", "a")
Commandgo-redisValkey GLIDE
ZADDrdb.ZAdd(ctx, "zset", redis.Z{Score: 1, Member: "a"}, redis.Z{Score: 2, Member: "b"})client.ZAdd(ctx, "zset", map[string]float64{"a": 1.0, "b": 2.0})
ZRANGErdb.ZRange(ctx, "zset", 0, -1)client.ZRange(ctx, "zset", options.RangeByIndex{Start: 0, End: -1})
ZRANGE with scoresrdb.ZRangeWithScores(ctx, "zset", 0, -1)client.ZRangeWithScores(ctx, "zset", options.RangeByIndex{Start: 0, End: -1})
ZREMrdb.ZRem(ctx, "zset", "a", "b")client.ZRem(ctx, "zset", []string{"a", "b"})
ZSCORErdb.ZScore(ctx, "zset", "a")client.ZScore(ctx, "zset", "a")
ZRANKrdb.ZRank(ctx, "zset", "a")client.ZRank(ctx, "zset", "a")
ZREVRANKrdb.ZRevRank(ctx, "zset", "a")client.ZRevRank(ctx, "zset", "a")
Commandgo-redisValkey GLIDE
MULTI/EXECpipe := rdb.TxPipeline(); pipe.Set(ctx, "k", "v", 0); pipe.Get(ctx, "k"); pipe.Exec(ctx)batch := pipeline.NewStandaloneBatch(); batch.Set("k", "v"); batch.Get("k"); client.Exec(ctx, batch, false)
Commandgo-redisValkey GLIDE
EVALrdb.Eval(ctx, script, []string{"key"}, "arg")client.InvokeScriptWithOptions(ctx, options.NewScript(script), options.ScriptOptions{Keys: []string{"key"}, Args: []string{"arg"}})
EVALSHArdb.EvalSha(ctx, sha, []string{"key"}, "arg")client.InvokeScriptWithOptions(ctx, options.NewScript(script), options.ScriptOptions{Keys: []string{"key"}, Args: []string{"arg"}})
Commandgo-redisValkey GLIDE
Raw Commandrdb.Do(ctx, "SET", "key", "value")client.CustomCommand(ctx, []string{"SET", "key", "value"})
Commandgo-redisValkey GLIDE
Closerdb.Close()client.Close()