Stackexchange.Redis支持XX | NX | CH?

时间:2016-06-28 08:33:14

标签: redis stackexchange.redis

stackexchange.redis是否支持来自ZADD的NX和其他相关交换机? 我查看了文档,单元测试和代码,但找不到任何引用。如果有人能够在不支持

的情况下阐明如何实现这一点,那将会很棒

1 个答案:

答案 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);