Stackexchange.Redis 支持 XX|NX|CH?
Stackexchange.Redis support for XX|NX|CH?
stackexchange.redis是否支持 ZADD 的 NX 和其他相关开关?
我查看了文档、单元测试和代码,但找不到任何参考资料。如果有人可以阐明如何在不支持的情况下实现它,那就太好了
据我所知,这并没有在 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);
stackexchange.redis是否支持 ZADD 的 NX 和其他相关开关? 我查看了文档、单元测试和代码,但找不到任何参考资料。如果有人可以阐明如何在不支持的情况下实现它,那就太好了
据我所知,这并没有在 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);