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

Gig*_*igi 7 c# redis stackexchange.redis

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

conn.Send("ZADD mysortedset 1 john");
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ell 8

"模块"的引入使这更具相关性; 此API现在存在于Execute(...).请参阅:http://blog.marcgravell.com/2017/04/stackexchangeredis-and-redis-40-modules.html


先前:

目前还没有,我怀疑这个好处.特别是,这样做不允许在分片实例(twemproxy,redis-cluster等)上正确路由,不允许重命名命令映射用法,并且不允许使用二进制密钥/值.它也允许非常危险和概念破命令要使用不当,比如select,watch/ multi/ exec,阻断砰砰brpop/ blpop/ brpoplpush-所有这些都将是灾难性的多路复用器(当然,select是不是一个大问题,因为它可以只是被配置为使得Senddb未定义 - 由于一些类似的例子,已经存在的代码).这也将暴露应危险命令永远需要使用从一般的图书馆:debug segfault,client pause,等-再次,一切很糟糕的想法.

但可以肯定的是,理论上可以做到 ......但我真的希望看到一个令人信服的理由来抵消上面的许多问题.

目前,执行ad-hoc命令的最常见方式是通过ScriptEvaluate- 当然,它将涉及编写Lua.

  • @virtouso 寻找 `SortedSet*` 方法 (2认同)