Exemplo n.º 1
0
        public RedisBool HMSet(RedisParam key, RedisParam field, RedisParam value, RedisParam[] fields = null, RedisParam[] values = null)
        {
            if (key.IsNull)
            {
                throw new ArgumentNullException("key");
            }

            if (field.IsEmpty)
            {
                throw new ArgumentNullException("field");
            }

            ValidateNotDisposed();

            if (value.Length > RedisConstants.MaxValueLength)
            {
                throw new ArgumentException("value is limited to 1GB", "value");
            }

            if (fields.Length > 0)
            {
                if (values == null || values.Length != fields.Length)
                {
                    throw new ArgumentException("Field and values length does not match", "field");
                }

                var parameters = key
                                 .Join(field)
                                 .Join(value)
                                 .Join(fields.Merge(values));

                return(ExpectOK(RedisCommandList.HMSet, parameters));
            }
            return(ExpectOK(RedisCommandList.HMSet, key, field, value));
        }
Exemplo n.º 2
0
        public RedisInteger GeoAdd(RedisParam key, RedisGeospatialItem member, params RedisGeospatialItem[] members)
        {
            if (key.IsEmpty)
            {
                throw new ArgumentNullException("key");
            }

            if (member.IsEmpty)
            {
                throw new ArgumentNullException("member");
            }

            if (members.IsEmpty())
            {
                return(ExpectInteger(RedisCommandList.GeoAdd, key, member.Longitude.ToBytes(),
                                     member.Latitude.ToBytes(), member.Name.ToBytes()));
            }

            var parameters = key
                             .Join(member.Longitude.ToBytes())
                             .Join(member.Latitude.ToBytes())
                             .Join(member.Name.ToBytes());

            foreach (var m in members)
            {
                parameters = parameters
                             .Join(m.Longitude.ToBytes())
                             .Join(m.Latitude.ToBytes())
                             .Join(m.Name.ToBytes());
            }

            return(ExpectInteger(RedisCommandList.GeoAdd, parameters));
        }
Exemplo n.º 3
0
        public RedisMultiBytes GeoHash(RedisParam key, RedisParam member, params RedisParam[] members)
        {
            if (key.IsEmpty)
            {
                throw new ArgumentNullException("key");
            }

            if (member.IsEmpty)
            {
                throw new ArgumentNullException("member");
            }

            if (members.IsEmpty())
            {
                return(ExpectMultiDataBytes(RedisCommandList.GeoHash, key, member));
            }

            var parameters = key.Join(member);

            foreach (var m in members)
            {
                if (!m.IsEmpty)
                {
                    parameters = parameters.Join(m);
                }
            }

            return(ExpectMultiDataBytes(RedisCommandList.GeoHash, parameters));
        }
Exemplo n.º 4
0
        public RedisResult <RedisGeoRadiusResult[]> GeoRadius(RedisParam key, RedisGeoPosition position, double radius,
                                                              RedisGeoDistanceUnit unit, bool withCoord = false, bool withDist = false, bool withHash   = false,
                                                              int count = -1, RedisSortDirection sort = RedisSortDirection.Default, RedisParam?storeKey = null,
                                                              RedisParam?storeDistanceKey = null)
        {
            if (key.IsEmpty)
            {
                throw new ArgumentNullException("key");
            }

            var parameters = key
                             .Join(position.Longitude.ToBytes())
                             .Join(position.Latitude.ToBytes())
                             .Join(radius.ToBytes())
                             .Join(ToBytes(unit));

            if (withCoord)
            {
                parameters = parameters.Join(RedisCommandList.WithCoord);
            }

            if (withDist)
            {
                parameters = parameters.Join(RedisCommandList.WithDist);
            }

            if (withHash)
            {
                parameters = parameters.Join(RedisCommandList.WithHash);
            }

            if (count > -1)
            {
                parameters = parameters.Join(RedisCommandList.Count).Join(count.ToBytes());
            }

            if (sort == RedisSortDirection.Ascending)
            {
                parameters = parameters.Join(RedisCommandList.Ascending);
            }
            else if (sort == RedisSortDirection.Descending)
            {
                parameters = parameters.Join(RedisCommandList.Descending);
            }

            if (storeKey.HasValue && !storeKey.Value.IsEmpty)
            {
                parameters = parameters.Join(RedisCommandList.Store).Join(storeKey.ToBytes());
            }

            if (storeDistanceKey.HasValue && !storeDistanceKey.Value.IsEmpty)
            {
                parameters = parameters.Join(RedisCommandList.StoreDist).Join(storeDistanceKey.ToBytes());
            }

            return(RedisCommandUtils.ToGeoRadiusArray(ExpectArray(RedisCommandList.GeoRadius, parameters)));
        }
Exemplo n.º 5
0
        public RedisInteger RPush(RedisParam key, RedisParam[] values)
        {
            if (key.IsNull)
            {
                throw new ArgumentNullException("key");
            }

            if (values == null)
            {
                throw new ArgumentNullException("values");
            }

            return(ExpectInteger(RedisCommandList.RPush, key.Join(values)));
        }
Exemplo n.º 6
0
        public RedisInteger SAdd(RedisParam key, RedisParam member, params RedisParam[] members)
        {
            ValidateNotDisposed();
            ValidateKeyAndValue(key, member, valueName: "member");

            if (members.Length > 0)
            {
                var parameters = key
                                 .Join(member)
                                 .Join(members);

                return(ExpectInteger(RedisCommandList.SAdd, parameters));
            }
            return(ExpectInteger(RedisCommandList.SAdd, key, member));
        }
Exemplo n.º 7
0
        public RedisMultiString SUnionStrings(RedisParam key, params RedisParam[] keys)
        {
            if (key.IsNull)
            {
                throw new ArgumentNullException("key");
            }

            ValidateNotDisposed();

            if (keys.Length > 0)
            {
                var parameters = key.Join(keys);
                return(ExpectMultiDataStrings(RedisCommandList.SUnion, parameters));
            }
            return(ExpectMultiDataStrings(RedisCommandList.SUnion, key));
        }
Exemplo n.º 8
0
        public RedisInteger SUnionStore(RedisParam toKey, params RedisParam[] keys)
        {
            if (toKey.IsNull)
            {
                throw new ArgumentNullException("toKey");
            }

            ValidateNotDisposed();

            if (keys.Length > 0)
            {
                var parameters = toKey.Join(keys);
                return(ExpectInteger(RedisCommandList.SUnionStore, parameters));
            }
            return(ExpectInteger(RedisCommandList.SUnionStore, toKey));
        }
Exemplo n.º 9
0
        public RedisInteger Del(RedisParam key, params RedisParam[] keys)
        {
            if (key.IsNull)
            {
                throw new ArgumentNullException("key");
            }

            ValidateNotDisposed();

            if (keys.Length > 0)
            {
                var parameters = key.Join(keys.ToBytesArray());
                return(ExpectInteger(RedisCommandList.Del, parameters));
            }
            return(ExpectInteger(RedisCommandList.Del, keys.ToBytesArray()));
        }
Exemplo n.º 10
0
        public RedisMultiBytes SDiff(RedisParam fromKey, params RedisParam[] keys)
        {
            if (fromKey.IsNull)
            {
                throw new ArgumentNullException("fromKey");
            }

            ValidateNotDisposed();

            if (keys.Length > 0)
            {
                var parameters = fromKey.Join(keys);
                return(ExpectMultiDataBytes(RedisCommandList.SDiff, parameters));
            }
            return(ExpectMultiDataBytes(RedisCommandList.SDiff, fromKey));
        }
Exemplo n.º 11
0
        public RedisInteger PfCount(RedisParam key, params RedisParam[] keys)
        {
            if (key.IsNull)
            {
                throw new ArgumentNullException("key");
            }

            ValidateNotDisposed();

            var length = keys.Length;

            if (length > 0)
            {
                var parameters = key.Join(keys);
                return(ExpectInteger(RedisCommandList.PfAdd, parameters));
            }
            return(ExpectInteger(RedisCommandList.PfAdd, key));
        }
Exemplo n.º 12
0
        public RedisBool PfMerge(RedisParam destKey, RedisParam sourceKey, params RedisParam[] sourceKeys)
        {
            if (destKey.IsNull)
            {
                throw new ArgumentNullException("destKey");
            }

            if (sourceKey.IsNull)
            {
                throw new ArgumentNullException("sourceKey");
            }

            ValidateNotDisposed();

            var length = sourceKeys.Length;

            if (length > 0)
            {
                var parameters = destKey.Join(sourceKey).Join(sourceKeys);
                return(ExpectOK(RedisCommandList.Quit, parameters));
            }
            return(ExpectOK(RedisCommandList.Quit, destKey, sourceKey));
        }
Exemplo n.º 13
0
        public RedisBool PfAdd(RedisParam key, RedisParam element, params RedisParam[] elements)
        {
            if (key.IsNull)
            {
                throw new ArgumentNullException("key");
            }

            if (element.IsNull)
            {
                throw new ArgumentNullException("element");
            }

            ValidateNotDisposed();

            var length = elements.Length;

            if (length > 0)
            {
                var parameters = key.Join(element).Join(elements);
                return(ExpectOne(RedisCommandList.PfAdd, parameters));
            }
            return(ExpectOne(RedisCommandList.PfAdd, key, element));
        }
Exemplo n.º 14
0
        public RedisInteger HDel(RedisParam key, RedisParam field, params RedisParam[] fields)
        {
            if (key.IsNull)
            {
                throw new ArgumentNullException("key");
            }

            if (field.IsEmpty)
            {
                throw new ArgumentNullException("field");
            }

            ValidateNotDisposed();

            if (fields.Length > 0)
            {
                var parameters = key
                                 .Join(field)
                                 .Join(fields);

                return(ExpectInteger(RedisCommandList.HDel, parameters));
            }
            return(ExpectInteger(RedisCommandList.HDel, key, field));
        }
Exemplo n.º 15
0
        public RedisInteger SRem(RedisParam key, RedisParam member, params RedisParam[] members)
        {
            if (key.IsNull)
            {
                throw new ArgumentNullException("key");
            }

            if (member.IsNull)
            {
                throw new ArgumentNullException("member");
            }

            ValidateNotDisposed();

            if (members.Length > 0)
            {
                var parameters = key
                                 .Join(member)
                                 .Join(members);

                return(ExpectInteger(RedisCommandList.SRem, parameters));
            }
            return(ExpectInteger(RedisCommandList.SRem, key, member));
        }
Exemplo n.º 16
0
        public RedisMultiString HMGetStrings(RedisParam key, RedisParam field, params RedisParam[] fields)
        {
            if (key.IsNull)
            {
                throw new ArgumentNullException("key");
            }

            if (field.IsEmpty)
            {
                throw new ArgumentNullException("field");
            }

            ValidateNotDisposed();

            if (fields.Length > 0)
            {
                var parameters = key
                                 .Join(field)
                                 .Join(fields);

                return(ExpectMultiDataStrings(RedisCommandList.HMGet, parameters));
            }
            return(ExpectMultiDataStrings(RedisCommandList.HMGet, key, field.ToBytes()));
        }
Exemplo n.º 17
0
        public RedisResult <RedisGeoPosition[]> GeoPosition(RedisParam key, RedisParam member, params RedisParam[] members)
        {
            if (key.IsEmpty)
            {
                throw new ArgumentNullException("key");
            }

            if (member.IsEmpty)
            {
                throw new ArgumentNullException("member");
            }

            var parameters = key.Join(member);

            foreach (var m in members)
            {
                if (!m.IsEmpty)
                {
                    parameters = parameters.Join(m);
                }
            }

            return(RedisCommandUtils.ToGeoPosition(ExpectArray(RedisCommandList.GeoPos, parameters)));
        }