【问题标题】:Are raw commands available in StackExchange.Redis?StackExchange.Redis 中是否提供原始命令?
【发布时间】:2015-05-18 10:10:12
【问题描述】:

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

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

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

【问题讨论】:

  • 只是说:这已经改变了,并且有一个API。查看更新的答案。

标签: c# redis stackexchange.redis


【解决方案1】:

“模块”的引入使这一点更加相关;此 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 - all其中对多路复用器来说将是灾难性的(好吧,select 并不是什么大问题,因为它可以配置为 Send 使数据库未定义 - 由于一些类似的示例,该代码已经存在)。它还会从通用库中暴露永远不需要使用的危险命令:debug segfaultclient pause 等 - 同样,所有非常糟糕的想法

当然,理论上它可以做到...但我真的希望看到一个令人信服的理由来解决上述许多问题。

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

【讨论】:

  • 这是一个用例:我想向 Redis 发送一个 DEBUG OBJECT 命令,看看给定一个键的值有多大。
  • @Daniel tbh 我以为我们已经公开了 DEBUG OBJECT - 很确定我们在“opserver”中使用它进行数据库分析,但是:它也存在于大约一周前发布的新 Execute API 中; blog.marcgravell.com/2017/04/…
  • 我在 stackexchange.redis 中寻找 zrange 和 zadd 但我找不到任何结果。你能说我该怎么做吗?我正在寻找找到这个的运行原始命令
  • @virtouso 寻找 SortedSet* 方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-02
  • 2017-10-06
  • 2021-09-14
  • 2014-08-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多