StackExchange.Redis 中是否提供原始命令?

Are raw commands available in StackExchange.Redis?

StackExchange.Redis 中是否有任何功能可以让您直接执行原始命令?就像我会在命令中提供一个字符串,例如(下面的假设代码):

conn.Send("ZADD mysortedset 1 john");

我知道几乎每个命令都有可用的方法,包括 ZADD,但这不是重点。

"modules" 的引入使这更有意义;这个 API 现在存在于 Execute(...) 中。参见:http://blog.marcgravell.com/2017/04/stackexchangeredis-and-redis-40-modules.html


之前:

目前没有,我会怀疑它的好处。特别是,这样做不允许在分片实例(twemproxy、redis-cluster 等)上进行正确路由,不允许使用重命名的命令映射,也不允许使用二进制键/值。它还会允许不恰当地使用非常危险和破坏概念的命令,例如 selectwatch/multi/exec、blocking-pops brpop /blpop/brpoplpush - 所有这些对多路复用器来说都是灾难性的(好吧,select 不是什么大问题,因为它可以配置为 Send 离开数据库未定义——由于一些类似的例子,它的代码已经存在)。它还会公开危险的命令,这些命令 永远不需要使用 来自通用库的命令:debug segfaultclient pause 等 - 同样,所有 非常糟糕的想法.

但是当然,理论上它 可以完成 ...但是我 真的 想看到一个令人信服的理由来抵消上面有很多问题。

目前,最公开的执行临时命令的方式是通过 ScriptEvaluate - 当然,它会涉及编写 Lua。