redis - Stackexchange.Redis 支持 XX|NX|CH?

标签 redis stackexchange.redis

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" });

您也可以使用 CachingFramework.Redis构建在 SE.Redis 之上的库,因为 SortedSet 命令已经处理了 NX/XX 开关,例如:

var context = new CachingFramework.Redis.Context();
var sset = context.Collections.GetRedisSortedSet<string>("key");
sset.Add(12.34, "member", When.NotExists);

关于redis - Stackexchange.Redis 支持 XX|NX|CH?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38071045/

相关文章:

redis - 如何在 Docker 中运行 Redis 服务器和另一个应用程序?

ruby - 我是否以正确的方式使用 eventmachine?

Redis 生产规模

stackexchange.redis - StackExchange Redis 连接配置是否已更改?

c# - 用于投票后和用户声誉的 Redis 排序集

amazon-web-services - Redis:没有多可用区的复制是否有意义?

bash - 如何优化redis cli脚本来处理5000万个key

linked-list - Redis 数据结构空间要求

redis - Redlock.net 无法获取锁

redis - StackExcange.Redis.RedisTimeoutException异常