由 Eval 引申到 Redis Cluster 的学习

背景

因为业务需要写了一段 Redis 的 Lua Script,在调用 EVAL 的时候发现还有两个参数 KEYSARGV,感觉很疑惑,难道不是简单的传点参数进去就可以?所以了解了一下这两个参数的含义。

EVAL 命令的定义是

1
EVAL script numkeys key [key ...] arg [arg ...]

All Redis commands must be analyzed before execution to determine which keys the command will operate on. In order for this to be true for EVAL, keys must be passed explicitly. This is useful in many ways, but especially to make sure Redis Cluster can forward your request to the appropriate cluster node.

Redis 设计的原意是使用者应当将在 Lua Script 中操作的所有 KEY 以 KEYS 的形式传给 EVAL,这样 EVAL 能够在真正运行前检查一下 KEY,就目前来说,是根据 KEYS 来决定把指令转发到哪台 Redis Cluster Master Node 上。
ARGV 则是传递一些必要的参数,这个倒是没什么使用规范。

于是我先放下 EVAL,了解一下 Redis Cluster,用了这么久 Redis 了,还没用过 Redis Cluster,惭愧。

Kubernetes 学习札记 - 在 Google Cloud 上搭建集群

Target

  • 搭建 Kubernetes 集群(Master * 1 + Node * 2)
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×