设为首页 收藏本站
查看: 522|回复: 0

[经验分享] redis成长之路

[复制链接]

尚未签到

发表于 2017-12-21 16:59:08 | 显示全部楼层 |阅读模式
class Program  {
  static void Main(string[] args)
  {
  Console.Title = "Wenli.Drive.Redis驱动测试";
  Console.WriteLine("Wenli.Drive.Redis test");
  Console.WriteLine("输入s 测试哨兵模式,输入c测试cluster模式,M为连续,其它为单实例模式");
  while (true)
  {
  var c = Console.ReadLine();
  if (c.ToUpper() == "S")
  {
  #region sentinel
  Console.WriteLine("Wenli.Drive.Redis test 进入哨兵模式---------------------");
  using (var redisHelper = RedisHelperBuilder.Build("ClusterConfig"))
  {
  #region string
  Console.ReadLine();
  Console.WriteLine("string get/set test");
  redisHelper.GetRedisOperation().StringSet("abcabcabc", "123123");
  Console.WriteLine("写入key:abcabcabc,value:123123");
  var str = redisHelper.GetRedisOperation().StringGet("abcabcabc");
  Console.WriteLine("查询key:abcabcabc,value:" + str);
  redisHelper.GetRedisOperation().KeyDelete("abcabcabc");
  Console.WriteLine("移除key:abcabcabc");
  #endregion
  #region hashset
  Console.ReadLine();
  Console.WriteLine("hashset get/set test");
  var testModel = new DemoModel()
  {
  ID = Guid.NewGuid().ToString("N"),
  Age = 18,
  Name = "Kitty",
  Created = DateTime.Now
  };
  redisHelper.GetRedisOperation().HashSet<DemoModel>(testModel.Name, testModel.ID, testModel);
  Console.WriteLine(string.Format("写入hashid:{0},key:{1}", testModel.Name, testModel.ID));
  testModel = redisHelper.GetRedisOperation().HashGet<DemoModel>(testModel.Name, testModel.ID);
  Console.WriteLine(string.Format("查询hashid:{0},key:{1}", testModel.Name, testModel.ID));
  redisHelper.GetRedisOperation().HashDelete(testModel.Name, testModel.ID);
  Console.WriteLine("移除hash");
  #endregion
  #region 队列
  Console.ReadLine();
  Console.WriteLine("list test");
  redisHelper.GetRedisOperation().Enqueue("list", "listvalue");
  Console.WriteLine("入队:list,value:listvalue");
  Console.WriteLine("list.coumt:" + redisHelper.GetRedisOperation().QueueCount("list"));
  Console.WriteLine(string.Format("出队:list,value:{0}", redisHelper.GetRedisOperation().Dnqueue("list")));
  Console.WriteLine("list.coumt:" + redisHelper.GetRedisOperation().QueueCount("list"));
  #endregion
  #region sortedset
  Console.ReadLine();
  Console.WriteLine("sortedset test");
  Console.WriteLine(string.Format("sortedset add :{0}", redisHelper.GetRedisOperation().SortedSetAdd("sortedset", "sortedset", 0)));
  var list = redisHelper.GetRedisOperation().GetSortedSetRangeByRankWithSocres("sortedset", 0, 10000, 1, 9999, true);
  Console.WriteLine(string.Format("sortedset getlist :{0}", list));
  Console.WriteLine(string.Format("sortedset remove :{0}", redisHelper.GetRedisOperation().RemoveItemFromSortedSet("sortedset", "sortedset")));
  #endregion
  #region pub/sub
  Console.ReadLine();
  Console.WriteLine("sub/pub test");
  Console.WriteLine("订阅频道:happy");
  redisHelper.GetRedisOperation().Subscribe("happy", (x, y) =>
  {
  Console.WriteLine(string.Format("订阅者收到消息;频道:{0},消息:{1}", x, y));
  });
  Console.WriteLine("发布频道happy 10 条测试消息");
  for (int i = 1; i <= 10; i++)
  {
  redisHelper.GetRedisOperation().Publish("happy", "this is a test message" + i);
  Thread.Sleep(400);
  }
  #endregion
  Console.ReadLine();
  redisHelper.GetRedisOperation().Unsubscribe("happy");
  }
  #endregion
  }
  else if (c.ToUpper() == "C")
  {
  #region cluster
  Console.WriteLine("Wenli.Drive.Redis test 进入集群模式---------------------");
  var redisHelper = RedisHelperBuilder.Build("ClusterConfig");
  #region string
  Console.ReadLine();
  Console.WriteLine("string get/set test");
  redisHelper.GetRedisOperation().StringSet("abcabcabc", "123123");
  Console.WriteLine("写入key:abcabcabc,value:123123");
  var str = redisHelper.GetRedisOperation().StringGet("abcabcabc");
  Console.WriteLine("查询key:abcabcabc,value:" + str);
  redisHelper.GetRedisOperation().KeyDelete("abcabcabc");
  Console.WriteLine("移除key:abcabcabc");
  #endregion
  #region hashset
  Console.ReadLine();
  Console.WriteLine("hashset get/set test");
  var testModel = new DemoModel()
  {
  ID = Guid.NewGuid().ToString("N"),
  Age = 18,
  Name = "Kitty",
  Created = DateTime.Now
  };
  redisHelper.GetRedisOperation().HashSet<DemoModel>(testModel.Name, testModel.ID, testModel);
  Console.WriteLine(string.Format("写入hashid:{0},key:{1}", testModel.Name, testModel.ID));
  testModel = redisHelper.GetRedisOperation().HashGet<DemoModel>(testModel.Name, testModel.ID);
  Console.WriteLine(string.Format("查询hashid:{0},key:{1}", testModel.Name, testModel.ID));
  redisHelper.GetRedisOperation().HashDelete(testModel.Name, testModel.ID);
  Console.WriteLine("移除hash");
  #endregion
  #region 队列
  Console.ReadLine();
  Console.WriteLine("list test");
  redisHelper.GetRedisOperation().Enqueue("list", "listvalue");
  Console.WriteLine("入队:list,value:listvalue");
  Console.WriteLine("list.coumt:" + redisHelper.GetRedisOperation().QueueCount("list"));
  Console.WriteLine(string.Format("出队:list,value:{0}", redisHelper.GetRedisOperation().Dnqueue("list")));
  Console.WriteLine("list.coumt:" + redisHelper.GetRedisOperation().QueueCount("list"));
  #endregion
  #region pub/sub
  Console.ReadLine();
  Console.WriteLine("sub/pub test");
  Console.WriteLine("订阅频道:happy");
  redisHelper.GetRedisOperation().Subscribe("happy", (x, y) =>
  {
  Console.WriteLine(string.Format("订阅者收到消息;频道:{0},消息:{1}", x, y));
  });
  Console.WriteLine("发布频道happy 10 条测试消息");
  for (int i = 1; i <= 10; i++)
  {
  redisHelper.GetRedisOperation().Publish("happy", "this is a test message" + i);
  Thread.Sleep(400);
  }
  #endregion
  Console.ReadLine();
  redisHelper.GetRedisOperation().Unsubscribe("happy");
  #endregion
  }
  else if (c.ToUpper() == "M")
  {
  #region default redis
  Console.WriteLine("Wenli.Drive.Redis test 进入连续测试模式---------------------");
  string value = "123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式123123进入连续测试模式";
  var td1 = new Thread(new ThreadStart(() =>
  {
  using (var redisHelper = RedisHelperBuilder.Build("SentinelConfig"))
  {
  Parallel.For(0, 100000, countIndex =>
  {
  #region string
  Console.WriteLine("string get/set test");
  redisHelper.GetRedisOperation().StringSet(countIndex.ToString(), value);
  Console.WriteLine("写入key:abcabcabc,value:123123");
  var str = redisHelper.GetRedisOperation().StringGet(countIndex.ToString());
  Console.WriteLine("查询key:abcabcabc,value:" + str);
  redisHelper.GetRedisOperation().KeyDelete(countIndex.ToString());
  Console.WriteLine("移除key:abcabcabc");
  #endregion
  #region hashset
  Console.WriteLine("hashset get/set test");
  var testModel = new DemoModel()
  {
  ID = Guid.NewGuid().ToString("N"),
  Age = 18,
  Name = "Kitty",
  Created = DateTime.Now
  };
  redisHelper.GetRedisOperation().HashSet<DemoModel>(testModel.Name, testModel.ID, testModel);
  Console.WriteLine(string.Format("写入hashid:{0},key:{1}", testModel.Name, testModel.ID));
  testModel = redisHelper.GetRedisOperation().HashGet<DemoModel>(testModel.Name, testModel.ID);
  Console.WriteLine(string.Format("查询hashid:{0},key:{1}", testModel.Name, testModel.ID));
  redisHelper.GetRedisOperation().HashDelete(testModel.Name, testModel.ID);
  Console.WriteLine("移除hash");
  #endregion
  });
  }
  }));
  var td2 = new Thread(new ThreadStart(() =>
  {
  Parallel.For(0, 100000, countIndex =>
  {
  using (var redisHelper = RedisHelperBuilder.Build("SentinelConfig"))
  {
  #region string
  Console.WriteLine("string get/set test");
  redisHelper.GetRedisOperation().StringSet(countIndex.ToString(), value);
  Console.WriteLine("写入key:abcabcabc,value:123123");
  var str = redisHelper.GetRedisOperation().StringGet(countIndex.ToString());
  Console.WriteLine("查询key:abcabcabc,value:" + str);
  redisHelper.GetRedisOperation().KeyDelete(countIndex.ToString());
  Console.WriteLine("移除key:abcabcabc");
  #endregion
  #region hashset
  Console.WriteLine("hashset get/set test");
  var testModel = new DemoModel()
  {
  ID = Guid.NewGuid().ToString("N"),
  Age = 18,
  Name = "Kitty",
  Created = DateTime.Now
  };
  redisHelper.GetRedisOperation().HashSet<DemoModel>(testModel.Name, testModel.ID, testModel);
  Console.WriteLine(string.Format("写入hashid:{0},key:{1}", testModel.Name, testModel.ID));
  testModel = redisHelper.GetRedisOperation().HashGet<DemoModel>(testModel.Name, testModel.ID);
  Console.WriteLine(string.Format("查询hashid:{0},key:{1}", testModel.Name, testModel.ID));
  redisHelper.GetRedisOperation().HashDelete(testModel.Name, testModel.ID);
  Console.WriteLine("移除hash");
  #endregion
  }
  });
  }));
  td1.Start();
  td2.Start();
  while (td1.IsAlive || td2.IsAlive)
  {
  Thread.Sleep(50);
  }
  Console.WriteLine("Wenli.Drive.Redis test 任务已完成!---------------------");
  #endregion
  }
  else
  {
  #region default redis
  Console.WriteLine("Wenli.Drive.Redis test 进入单实例模式---------------------");
  var redisHelper = RedisHelperBuilder.Build("RedisConfig");
  #region string
  Console.ReadLine();
  Console.WriteLine("string get/set test");
  redisHelper.GetRedisOperation(12).StringSet("abcabcabc", "123123");
  Console.WriteLine("写入key:abcabcabc,value:123123");
  var str = redisHelper.GetRedisOperation(12).StringGet("abcabcabc");
  Console.WriteLine("查询key:abcabcabc,value:" + str);
  redisHelper.GetRedisOperation(12).KeyDelete("abcabcabc");
  Console.WriteLine("移除key:abcabcabc");
  #endregion
  #region hashset
  Console.ReadLine();
  Console.WriteLine("hashset get/set test");
  var testModel = new DemoModel()
  {
  ID = Guid.NewGuid().ToString("N"),
  Age = 18,
  Name = "Kitty",
  Created = DateTime.Now
  };
  redisHelper.GetRedisOperation().HashSet<DemoModel>(testModel.Name, testModel.ID, testModel);
  Console.WriteLine(string.Format("写入hashid:{0},key:{1}", testModel.Name, testModel.ID));
  testModel = redisHelper.GetRedisOperation().HashGet<DemoModel>(testModel.Name, testModel.ID);
  Console.WriteLine(string.Format("查询hashid:{0},key:{1}", testModel.Name, testModel.ID));
  redisHelper.GetRedisOperation().HashGetAll<DemoModel>(testModel.Name, 1, 1);
  redisHelper.GetRedisOperation().HashDelete(testModel.Name, testModel.ID);
  Console.WriteLine("移除hash");
  #endregion
  #region 队列
  Console.ReadLine();
  Console.WriteLine("list test");
  redisHelper.GetRedisOperation().Enqueue("list", "listvalue");
  Console.WriteLine("入队:list,value:listvalue");
  Console.WriteLine("list.coumt:" + redisHelper.GetRedisOperation().QueueCount("list"));
  Console.WriteLine(string.Format("出队:list,value:{0}", redisHelper.GetRedisOperation().Dnqueue("list")));
  Console.WriteLine("list.coumt:" + redisHelper.GetRedisOperation().QueueCount("list"));
  #endregion
  #region pub/sub
  Console.ReadLine();
  Console.WriteLine("sub/pub test");
  Console.WriteLine("订阅频道:happy");
  redisHelper.GetRedisOperation().Subscribe("happy", (x, y) =>
  {
  Console.WriteLine(string.Format("订阅者收到消息;频道:{0},消息:{1}", x, y));
  });
  Console.WriteLine("发布频道happy 10 条测试消息");
  for (int i = 1; i <= 10; i++)
  {
  redisHelper.GetRedisOperation().Publish("happy", "this is a test message" + i);
  Thread.Sleep(400);
  }
  #endregion
  Console.ReadLine();
  redisHelper.GetRedisOperation().Unsubscribe("happy");
  #endregion
  }
  }
  Console.ReadLine();
  }
  }

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-426551-1-1.html 上篇帖子: java SSM 框架 代码生成器 websocket即时通讯 shiro redis 下篇帖子: php+redis实现消息队列
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表