stackexchange.redis是否支持来自ZADD的NX和其他相关交换机? 我查看了文档,单元测试和代码,但找不到任何引用。如果有人能够在不支持
的情况下阐明如何实现这一点,那将会很棒答案 0 :(得分:1)
据我所知,最新稳定版本的SE.Redis没有实现。
但您仍然可以使用 ScriptEvaluate 执行任意redis命令,例如:
var ctx = ConnectionMultiplexer.Connect("...");
var db = ctx.GetDatabase();
db.ScriptEvaluate("return redis.call('zadd', KEYS[1], unpack(ARGV))",
new RedisKey[] { "key" },
new RedisValue[] { "NX", 12.34, "member" });
此外,您可以使用构建在SE.Redis之上的CachingFramework.Redis库,因为SortedSet命令已经处理了NX / XX开关,例如:
var context = new CachingFramework.Redis.Context();
var sset = context.Collections.GetRedisSortedSet<string>("key");
sset.Add(12.34, "member", When.NotExists);