Exemple #1
0
        protected void LoadDifferentKeyTypes(IRedisClient redis)
        {
            int A       = 'A';
            int Z       = 'Z';
            var letters = (Z - A + 1).Times(i => ((char)(i + A)).ToString());
            var numbers = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };

            redis.RemoveEntry("list:letters", "list:numbers"); //don't add duplicates to existing list
            letters.Each(x => redis.AddItemToList("list:letters", x));
            numbers.Each(x => redis.AddItemToList("list:numbers", x));

            letters.Each(x => redis.AddItemToSet("set:letters", x));
            numbers.Each(x => redis.AddItemToSet("set:numbers", x));

            var pos = 0;

            letters.Each(x => redis.AddItemToSortedSet("zset:letters", x, pos++));
            pos = 0;
            numbers.Each(x => redis.AddItemToSortedSet("zset:numbers", x, pos++));

            pos = 0;
            letters.Each(x => redis.SetEntryInHash("hash:letters", x, (pos++).ToString()));
            pos = 0;
            numbers.Each(x => redis.SetEntryInHash("hash:numbers", x, (pos++).ToString()));
        }
Exemple #2
0
 /// <summary>
 /// 添加key/value
 /// </summary>
 public void Add(string key, string value)
 {
     using (IRedisClient Core = CreateRedisClient())
     {
         Core.AddItemToList(key, value);
     }
 }
Exemple #3
0
 public static void AddItemToList(string key, string val)
 {
     using (IRedisClient con = RedisManage.ClientManager.GetClient())
     {
         con.AddItemToList(key, val);
     }
 }
Exemple #4
0
 /// <summary>
 /// 向list类型数据添加成员,向列表底部(右侧)添加
 /// </summary>
 /// <param name="item"></param>
 /// <param name="list"></param>
 public static void AddItemToListRight(string list, string item)
 {
     using (IRedisClient redis = PooleClient.GetClient())
     {
         redis.AddItemToList(list, item);
     }
 }
 /// <summary>
 ///  添加指定的值到有序列表中
 /// </summary>
 /// <param name="listId"></param>
 /// <param name="value"></param>
 public void AddItemToList(string listId, string value)
 {
     using (IRedisClient client = redisPool.GetClient())
     {
         client.AddItemToList(listId, value);
     }
 }
Exemple #6
0
 public void AddList(string listId, object value, DateTime expiredTime)
 {
     using (IRedisClient Redis = RedisManager.GetClient())
     {
         if (Redis.ContainsKey(listId))
         {
             Redis.AddItemToList(listId, value.Serialize());
             Redis.ExpireEntryAt(listId, expiredTime);
         }
         else
         {
             Redis.AddItemToList(listId, value.Serialize());
             Redis.ExpireEntryAt(listId, expiredTime);
         }
     }
 }
Exemple #7
0
 public Task AddObjectTypeAsync(string ObjectType)
 {
     using (IRedisClient redis = clientsManager.GetClient())
     {
         redis.AddItemToList(NCORE_OBJECTS, ObjectType);
     }
     return(Task.CompletedTask);
 }
 /// <summary>
 /// 向list类型数据添加成员,向列表底部(右侧)添加
 /// </summary>
 /// <param name="item"></param>
 /// <param name="setId"></param>
 public static void AddItemToListRight(string setId, string item)
 {
     using (IRedisClient redis = PooleClient.GetClient())
     {
         redis.RemoveItemFromList(setId, item);
         redis.AddItemToList(setId, item);
     }
 }
Exemple #9
0
 /// <summary>
 /// 添加key/value ,并设置过期时间
 /// </summary>
 public void Add(string key, string value, DateTime dt)
 {
     using (IRedisClient Core = CreateRedisClient())
     {
         Core.AddItemToList(key, value);
         Core.ExpireEntryAt(key, dt);
     }
 }
 /// <summary>
 /// 新增一个集合
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="key"></param>
 /// <param name="t"></param>
 public static void List_AddJson <T>(string key, T t)
 {
     using (IRedisClient redis = prcm.GetClient())
     {
         string value = ServiceStack.Text.JsonSerializer.SerializeToString <T>(t);
         redis.AddItemToList(key, value);
     }
 }
Exemple #11
0
 public Task AddTopicAsync(string Topic)
 {
     using (IRedisClient redis = clientsManager.GetClient())
     {
         redis.AddItemToList(NCORE_TOPICS, Topic);
     }
     return(Task.CompletedTask);
 }
Exemple #12
0
 /// <summary>
 /// 添加key/value。并添加过期时间
 /// </summary>
 public void Add(string key, string value, TimeSpan sp)
 {
     using (IRedisClient Core = CreateRedisClient())
     {
         Core.AddItemToList(key, value);
         Core.ExpireEntryIn(key, sp);
     }
 }
Exemple #13
0
 /// <summary>
 /// 列表追加
 /// </summary>
 /// <param name="listId">列表Id</param>
 /// <param name="value"></param>
 public static bool AddItemToList(string listId, string value)
 {
     using (IRedisClient redis = RedisManager.GetClient())
     {
         redis.AddItemToList(listId, value);
         redis.Dispose();
     }
     return(true);
 }
Exemple #14
0
        ///// <summary>
        /////使某个字段增加
        ///// </summary>
        ///// <param name="key"></param>
        ///// <param name="field"></param>
        ///// <returns></returns>
        //public static void SetHashIncr(string key, string field, long incre)
        //{
        //    redisCli.IncrementValueInHash(key, field, incre);

        //}
        /// <summary>
        /// 向list类型数据添加成员,向列表底部(右侧)添加
        /// </summary>
        /// <param name="Item"></param>
        /// <param name="list"></param>
        public void AddItemToListRight(string list, string item)
        {
            try
            {
                _redisCli.AddItemToList(list, item);
            }
            catch
            {
            }
        }
Exemple #15
0
 public void CheckItemInList(string listId, int count)
 {
     lock (Redis)
     {
         for (int i = Redis.GetListCount(listId) - 1; i < count; i++)
         {
             Redis.AddItemToList(listId, "");
         }
     }
 }
Exemple #16
0
 private IEnumerable<string> PushToQueues(IRedisClient client, long nextMsgId)
 {
     var key = Topic + "." + QUEUES;
     var queues = client.GetAllItemsFromSet(key).ToList();
     foreach (var queue in queues)
     {
         //First add to the queue itself
         client.AddItemToList(queue, nextMsgId.ToString());
     }
     return queues;
 }
Exemple #17
0
 public override void RPush <T>(string listId, T value, DateTime?expireTime)
 {
     using (IRedisClient redis = GetRedisClient())
     {
         var strValue = JsonConvert.SerializeObject(value, JsonSetting);
         redis.AddItemToList(listId, strValue);
         if (expireTime != null && expireTime.Value > DateTime.Now)
         {
             redis.ExpireEntryAt(listId, expireTime.Value);
         }
     }
 }
Exemple #18
0
 public void UpdateHistoryMessage(string name, string message)
 {
     if (!string.IsNullOrWhiteSpace(message) && !string.IsNullOrWhiteSpace(name))
     {
         string         date    = DateTime.Now.ToString();
         HistoryMessage history = new HistoryMessage()
         {
             Name    = name,
             Message = message,
             MsgTime = date
         };
         string result = JsonConvert.SerializeObject(history, Formatting.Indented);
         client.AddItemToList("HistoryMessage", result);
     }
 }
Exemple #19
0
 public static bool AddItemToList(string listid, string value)
 {
     try
     {
         using (IRedisClient client = GetClient())
         {
             client.AddItemToList(listid, value);
         }
         return true;
     }
     catch (Exception)
     {
         return false;
     }
 }
Exemple #20
0
        public void PutArtifact(ArtifactInfo info, System.IO.Stream stream)
        {
            var jss = new JsonSerializer <ArtifactObject>();

            long ctr = client.IncrementValue(fileNameCounterKey);

            string fileName = filePrefix + "/" + ctr + ".artifact";

            client.AddItemToList(artifactListKey, jss.Serialize(info));

            using (var fs = File.Create(fileName))
            {
                stream.CopyTo(fs);
            }
        }
        protected void LoadDifferentKeyTypes(IRedisClient redis)
        {
            int A = 'A';
            int Z = 'Z';
            var letters = (Z - A + 1).Times(i => ((char)(i + A)).ToString());
            var numbers = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };

            redis.RemoveEntry("list:letters", "list:numbers"); //don't add duplicates to existing list
            letters.Each(x => redis.AddItemToList("list:letters", x));
            numbers.Each(x => redis.AddItemToList("list:numbers", x));

            letters.Each(x => redis.AddItemToSet("set:letters", x));
            numbers.Each(x => redis.AddItemToSet("set:numbers", x));

            var pos = 0;
            letters.Each(x => redis.AddItemToSortedSet("zset:letters", x, pos++));
            pos = 0;
            numbers.Each(x => redis.AddItemToSortedSet("zset:numbers", x, pos++));

            pos = 0;
            letters.Each(x => redis.SetEntryInHash("hash:letters", x, (pos++).ToString()));
            pos = 0;
            numbers.Each(x => redis.SetEntryInHash("hash:numbers", x, (pos++).ToString()));
        }
Exemple #22
0
        public void Add(string key, object o, DateTimeOffset expiration, string dependsOnKey = null)
        {
            // Don't store the dependsOnKey because we store it as a list later!
            if (Equals(o, ""))
            {
                return;
            }

            var expireTime = expiration.Subtract(DateTimeOffset.Now);

            var primaryAdded = _client.Add(key, o, expireTime);

            if (dependsOnKey != null && primaryAdded)
            {
                _client.AddItemToList(dependsOnKey, key);
            }
        }
        private static void UseClient(IRedisClient client, int clientNo)
        {
            var host = "";

            try
            {
                host = client.Host;

                Debug.WriteLine(string.Format("Client '{0}' is using '{1}'", clientNo, client.Host));
                var differentDbs = new[] { 1, 0, 2 };

                foreach (var db in differentDbs)
                {
                    client.Db = db;

                    var testClientKey = "test:" + host + ":" + clientNo;
                    client.SetValue(testClientKey, testData);
                    var result = client.GetValue(testClientKey) ?? "";
                    LogResult(db, testClientKey, result);

                    var testClientSetKey = "test+set:" + host + ":" + clientNo;
                    client.AddItemToSet(testClientSetKey, testData);
                    var resultSet = client.GetAllItemsFromSet(testClientSetKey);
                    LogResult(db, testClientKey, resultSet.ToList().FirstOrDefault());

                    var testClientListKey = "test+list:" + host + ":" + clientNo;
                    client.AddItemToList(testClientListKey, testData);
                    var resultList = client.GetAllItemsFromList(testClientListKey);
                    LogResult(db, testClientKey, resultList.FirstOrDefault());
                }
            }
            catch (NullReferenceException ex)
            {
                Debug.WriteLine("NullReferenceException StackTrace: \n" + ex.StackTrace);
                Assert.Fail("NullReferenceException");
            }
            catch (Exception ex)
            {
                Debug.WriteLine(string.Format("\t[ERROR@{0}]: {1} => {2}",
                                              host, ex.GetType().Name, ex));
                Assert.Fail("Exception");
            }
        }
Exemple #24
0
        private void addMessageToRedis(string chatRoomName, string username, string messageDate, string message)
        {
            lock (redisManagerPool)
            {
                using (IRedisClient redisClient = redisManagerPool.GetClient())
                {
                    MessageModel messageModel = new MessageModel()
                    {
                        Username    = username,
                        MessageDate = messageDate,
                        Message     = message
                    };

                    string jsonMessageModel = JsonConvert.SerializeObject(messageModel);

                    redisClient.AddItemToList(chatRoomName, jsonMessageModel);
                }
            }
        }
Exemple #25
0
        protected void LoadDifferentKeyTypes(IRedisClient client)
        {
            var items = new List <string> {
                "one", "two", "three", "four"
            };
            var map = new Dictionary <string, string> {
                { "A", "one" },
                { "B", "two" },
                { "C", "three" },
                { "D", "four" },
            };

            items.ForEach(x => client.Set("urn:testkeytypes:string:" + x, x));
            items.ForEach(x => client.AddItemToList("urn:testkeytypes:list", x));
            items.ForEach(x => client.AddItemToSet("urn:testkeytypes:set", x));
            var i = 0;

            items.ForEach(x => client.AddItemToSortedSet("urn:testkeytypes:zset", x, i++));
            client.SetRangeInHash("urn:testkeytypes:hash", map);
        }
		private static void UseClient(IRedisClient client, int clientNo)
		{
			var host = "";

			try
			{
				host = client.Host;

				Debug.WriteLine(String.Format("Client '{0}' is using '{1}'", clientNo, client.Host));
				var differentDbs = new[] { 1, 0, 2 };

				foreach (var db in differentDbs)
				{
					client.Db = db;

					var testClientKey = "test:" + host + ":" + clientNo;
					client.SetEntry(testClientKey, testData);
					var result = client.GetValue(testClientKey) ?? "";
					LogResult(db, testClientKey, result);

					var testClientSetKey = "test+set:" + host + ":" + clientNo;
					client.AddItemToSet(testClientSetKey, testData);
					var resultSet = client.GetAllItemsFromSet(testClientSetKey);
					LogResult(db, testClientKey, resultSet.ToList().FirstOrDefault());

					var testClientListKey = "test+list:" + host + ":" + clientNo;
					client.AddItemToList(testClientListKey, testData);
					var resultList = client.GetAllItemsFromList(testClientListKey);
					LogResult(db, testClientKey, resultList.FirstOrDefault());

				}
			}
			catch (NullReferenceException ex)
			{
				Debug.WriteLine("NullReferenceException StackTrace: \n" + ex.StackTrace);
			}
			catch (Exception ex)
			{
				Debug.WriteLine(String.Format("\t[ERROR@{0}]: {1} => {2}",
					host, ex.GetType().Name, ex.Message));
			}
		}
 /// <summary>
 ///     添加到RedisList
 /// </summary>
 /// <param name="key"></param>
 /// <param name="value"></param>
 public void AddToList(string key, string value)
 {
     RedisClient.AddItemToList(key, value);
 }
Exemple #28
0
        static void Main(string[] args)
        {
            try
            {
                //获取Redis操作接口
                IRedisClient Redis = RedisManager.GetClient();
                //Hash表操作
                HashOperator operators = new HashOperator();

                //移除某个缓存数据
                bool isTrue = Redis.Remove("additemtolist");

                //将字符串列表添加到redis
                List <string> storeMembers = new List <string>()
                {
                    "韩梅梅", "李雷", "露西"
                };
                storeMembers.ForEach(x => Redis.AddItemToList("additemtolist", x));
                //得到指定的key所对应的value集合
                Console.WriteLine("得到指定的key所对应的value集合:");
                var members = Redis.GetAllItemsFromList("additemtolist");
                members.ForEach(s => Console.WriteLine("additemtolist :" + s));
                Console.WriteLine("");

                // 获取指定索引位置数据
                Console.WriteLine("获取指定索引位置数据:");
                var item = Redis.GetItemFromList("additemtolist", 2);
                Console.WriteLine(item);

                Console.WriteLine("");

                //将数据存入Hash表中
                Console.WriteLine("Hash表数据存储:");
                UserInfo userInfos = new UserInfo()
                {
                    UserName = "******", Age = 45
                };
                var    ser     = new ObjectSerializer(); //位于namespace ServiceStack.Redis.Support;
                bool   results = operators.Set <byte[]>("userInfosHash", "userInfos", ser.Serialize(userInfos));
                byte[] infos   = operators.Get <byte[]>("userInfosHash", "userInfos");
                userInfos = ser.Deserialize(infos) as UserInfo;
                Console.WriteLine("name=" + userInfos.UserName + "   age=" + userInfos.Age);

                Console.WriteLine("");

                //object序列化方式存储
                Console.WriteLine("object序列化方式存储:");
                UserInfo uInfo = new UserInfo()
                {
                    UserName = "******", Age = 12
                };
                bool     result    = Redis.Set <byte[]>("uInfo", ser.Serialize(uInfo));
                UserInfo userinfo2 = ser.Deserialize(Redis.Get <byte[]>("uInfo")) as UserInfo;
                Console.WriteLine("name=" + userinfo2.UserName + "   age=" + userinfo2.Age);

                Console.WriteLine("");

                //存储值类型数据
                Console.WriteLine("存储值类型数据:");
                Redis.Set <int>("my_age", 12);//或Redis.Set("my_age", 12);
                int age = Redis.Get <int>("my_age");
                Console.WriteLine("age=" + age);

                Console.WriteLine("");

                //序列化列表数据
                Console.WriteLine("列表数据:");
                List <UserInfo> userinfoList = new List <UserInfo> {
                    new UserInfo {
                        UserName = "******", Age = 1, Id = 1
                    },
                    new UserInfo {
                        UserName = "******", Age = 3, Id = 2
                    },
                };
                Redis.Set <byte[]>("userinfolist_serialize", ser.Serialize(userinfoList));
                List <UserInfo> userList = ser.Deserialize(Redis.Get <byte[]>("userinfolist_serialize")) as List <UserInfo>;
                userList.ForEach(i =>
                {
                    Console.WriteLine("name=" + i.UserName + "   age=" + i.Age);
                });
                //释放内存
                Redis.Dispose();
                operators.Dispose();
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message.ToString());
                Console.WriteLine("Please open the redis-server.exe ");
                Console.ReadKey();
            }
        }
 /// <summary>
 /// 在尾部追加一条字符串数据
 /// </summary>
 /// <param name="value">缓存的字符串数据</param>
 public void Add(string value)
 {
     redis.AddItemToList(Key, value);
 }