예제 #1
0
        /// <summary>
        /// 计算给定的numkeys个有序集合的并集,并且把结果放到destination中
        /// 使用WEIGHTS选项,你可以为每个给定的有序集指定一个乘法因子,意思就是,每个给定有序集的所有成员的score值在传递给聚合函数之前都要先乘以该因子。如果WEIGHTS没有给定,默认就是1
        ///默认使用的参数SUM,可以将所有集合中某个成员的score值之和作为结果集中该成员的score值。如果使用参数MIN或者MAX,结果集就是所有集合中元素最小或最大的元素。
        /// </summary>
        /// <param name="destinationKey"></param>
        /// <param name="keys"></param>
        /// <param name="weights"></param>
        /// <param name="aggregate"></param>
        /// <returns></returns>
        public long SortedSetCombineAndStoreUnion(string destinationKey, string[] keys, double[] weights, CtSharpRedisAggregate aggregate = CtSharpRedisAggregate.Sum)
        {
            if (Enum.IsDefined(typeof(CtSharpRedisAggregate), aggregate) || aggregate.Equals(CtSharpRedisAggregate.Sum))
            {
                return(database.ZUnionStore(destinationKey, weights, RedisAggregate.Sum, keys));
            }

            if (aggregate.Equals(CtSharpRedisAggregate.Min))
            {
                return(database.ZUnionStore(destinationKey, weights, RedisAggregate.Min, keys));
            }
            return(database.ZUnionStore(destinationKey, weights, RedisAggregate.Max, keys));
        }
예제 #2
0
        /// <summary>
        /// 计算给定的numkeys个有序集合的并集,并且把结果放到destination中
        /// </summary>
        /// <param name="destinationKey"></param>
        /// <param name="firstKey"></param>
        /// <param name="secondKey"></param>
        /// <param name="aggregate"></param>
        /// <returns></returns>
        public long SortedSetCombineAndStoreUnion(string destinationKey, string firstKey, string secondKey, CtSharpRedisAggregate aggregate = CtSharpRedisAggregate.Sum)
        {
            if (Enum.IsDefined(typeof(CtSharpRedisAggregate), aggregate) || aggregate.Equals(CtSharpRedisAggregate.Sum))
            {
                return(database.ZUnionStore(destinationKey, null, RedisAggregate.Sum, firstKey, secondKey));
            }

            if (aggregate.Equals(CtSharpRedisAggregate.Min))
            {
                return(database.ZUnionStore(destinationKey, null, RedisAggregate.Min, firstKey, secondKey));
            }
            return(database.ZUnionStore(destinationKey, null, RedisAggregate.Max, firstKey, secondKey));
        }