Ejemplo n.º 1
0
        /// <summary>
        /// 同时设置哈希表 <paramref name="key"/> 中一个或多个域值。
        /// </summary>
        /// <param name="client">Redis 客户端。</param>
        /// <param name="key">键名</param>
        /// <param name="fieldValues">域值的字典。</param>
        /// <returns>结果。</returns>
        public static Result HMSet(this IRedisClient client, string key, RedisDictionary fieldValues)
        {
            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }
            if (fieldValues == null)
            {
                throw new ArgumentNullException(nameof(fieldValues));
            }
            if (fieldValues.Count == 0)
            {
                return(Result.Successfully);
            }

            var args = RedisArgs.Parse(fieldValues, key).ToArray();

            return(client.Execute(new RedisStatus("HMSET", args)));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 同时设置一个或多个键值。
        /// </summary>
        /// <param name="client">Redis 客户端。</param>
        /// <param name="keyValues">键值的字典。</param>
        /// <returns>返回一个结果。</returns>
        public static Result MSet(this IRedisClient client, RedisDictionary keyValues)
        {
            if (client == null)
            {
                throw new ArgumentNullException("client");
            }
            if (keyValues == null)
            {
                throw new ArgumentNullException("keyValues");
            }
            if (keyValues.Count == 0)
            {
                return(Result.Successfully);
            }

            var args = RedisArgs.Parse(keyValues).ToArray();

            return(client.Execute(new RedisStatus("MSET", args)));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 仅当所有给定键都不存在,同时设置一个或多个键值。即使只有一个给定键已存在,MSETNX 也会拒绝执行所有给定键的设置操作。
        /// </summary>
        /// <param name="client">Redis 客户端。</param>
        /// <param name="keyValues">键值的字典。</param>
        /// <returns>当所有键都成功设置返回 true,否则返回 false。</returns>
        public static bool MSetNx(this IRedisClient client, RedisDictionary keyValues)
        {
            if (client == null)
            {
                throw new ArgumentNullException("client");
            }
            if (keyValues == null)
            {
                throw new ArgumentNullException("keyValues");
            }
            if (keyValues.Count == 0)
            {
                return(false);
            }

            var args = RedisArgs.Parse(keyValues).ToArray();

            return(client.Execute(new RedisBoolean("MSETNX", args)));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 将一个或多个成员及其权重值加入到有序集 <paramref name="key"/> 当中。
        /// <para>如果某个成员已经是有序集的成员,那么更新这个成员的权重值,并通过重新插入这个成员,来保证该成员在正确的位置上。</para>
        /// </summary>
        /// <param name="client">Redis 客户端。</param>
        /// <param name="key">有序集的键名。</param>
        /// <param name="items">成员权重项的数组。</param>
        /// <returns>返回被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员。</returns>
        public static long ZAdd(this IRedisClient client, string key, params RedisScoreItem[] items)
        {
            if (client == null)
            {
                throw new ArgumentNullException("client");
            }
            if (string.IsNullOrEmpty(key))
            {
                throw new ArgumentNullException("key");
            }
            if (items == null)
            {
                throw new ArgumentNullException("items");
            }
            if (items.Length == 0)
            {
                return(0);
            }

            var args = RedisArgs.Parse(key, items).ToArray();

            return(client.Execute(new RedisInteger("ZADD", args)));
        }