[英]No connection is available to service this operation - Redis with StackExchange.Redis
[英]Are raw commands available in StackExchange.Redis?
StackExchange.Redis中是否有任何功能允許您直接執行原始命令? 就像我提供一個帶有命令的字符串,例如(下面的假設代碼):
conn.Send("ZADD mysortedset 1 john");
我知道幾乎每個命令都有可用的方法,包括ZADD
,但這不是重點。
“模塊”的引入使這更具相關性; 此API現在存在於Execute(...)
。 請參閱: http : //blog.marcgravell.com/2017/04/stackexchangeredis-and-redis-40-modules.html
先前:
目前還沒有,我懷疑這個好處。 特別是,這樣做不允許在分片實例(twemproxy,redis-cluster等)上正確路由,不允許重命名命令映射用法,並且不允許使用二進制密鑰/值。 它還允許使用非常危險且破壞概念的命令,例如select
, watch
/ multi
/ exec
,blocking-pops brpop
/ blpop
/ brpoplpush
- 所有這些對多路復用器來說都是災難性的(好吧, select
isn')這是一個biggie,因為它可以被配置為使得Send
離開db undefined - 由於一些類似的例子,已經存在的代碼)。 它還會暴露永遠不需要從通用庫中使用的危險命令: debug segfault
, client pause
等 - 再次,所有非常糟糕的想法 。
但可以肯定的是,理論上可以做到 ......但我真的希望看到一個令人信服的理由來抵消上面的許多問題。
目前,執行ad-hoc命令的最常見方式是通過ScriptEvaluate
- 當然,它將涉及編寫Lua。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.