{"id":309,"date":"2013-05-27T11:48:57","date_gmt":"2013-05-27T11:48:57","guid":{"rendered":"eddea82ad2755b24c4e168c5fc2ebd40"},"modified":"2013-05-27T11:48:57","modified_gmt":"2013-05-27T11:48:57","slug":"","status":"publish","type":"post","link":"https:\/\/www.xiaobo.li\/notes\/archives\/309","title":{"rendered":"C# Redis"},"content":{"rendered":"<p>\u5f15\u7528\uff1aServiceStackRedis<\/p>\n<pre class=\"brush:c#; toolbar: true; auto-links: true;\">static void Main(string[] args)\r\n {\r\n\t var Redis = new RedisClient(\u201c127.0.0.1\u2033, 6379);\/\/redis\u670d\u52a1IP\u548c\u7aef\u53e3\r\n\t #region =insert=\r\n\t \/\/var storeMembers = new List&lt;string&gt; { \u201djj\u201d, \u201dlihui\u201d, \u201dcc\u201d };\r\n\t \/\/storeMembers.ForEach(x =&gt; Redis.AddItemToList(\u201cadditemtolist\u201d, x));\r\n\t \/\/\u6ce8\uff1a\u4e5f\u53ef\u76f4\u63a5\u4f7f\u7528AddRangeToList\u65b9\u6cd5\u5c06\u4e00\u7ec4\u6570\u636e\u88c5\u5165\u5982\uff1a\r\n\t \/\/Redis.AddRangeToList(\u201cadditemtolist\u201d, storeMembers);\r\n\t #endregion\r\n\t  #region =get=\r\n\t  \/\/var members = Redis.GetAllItemsFromList(\u201cadditemtolist\u201d);\r\n\t  \/\/members.ForEach(s =&gt; Console.WriteLine(\u201cadditemtolist :\u201d + s));\r\n\t  \/\/Console.WriteLine(Redis.GetItemFromList(\u201cadditemtolist\u201d, 2));\r\n\t  #endregion\r\n\t  #region =delete=\r\n\t  \/\/var list = Redis.Lists[\"additemtolist\"];\r\n\t  \/\/list.Clear();\/\/\u6e05\u7a7a\r\n\t  \/\/list.Remove(\u201ctwo\u201d);\/\/\u79fb\u9664\u6307\u5b9a\u952e\u503c\r\n\t  \/\/list.RemoveAt(2);\/\/\u79fb\u9664\u6307\u5b9a\u7d22\u5f15\u4f4d\u7f6e\u6570\u636e\r\n\t  #endregion\r\n\t  #region =object=\r\n\t  \/\/Redis.Set(\u201cuserinfo\u201d, new UserInfo() { UserName = \u201d\u674e\u56db\u201d, Age = 45 });\r\n\t  \/\/UserInfo userinfo = Redis.Get&lt;UserInfo&gt;(\u201cuserinfo\u201d);\r\n\t  \/\/Console.WriteLine(userinfo.UserName);\r\n\t  \/\/Redis.Set&lt;int&gt;(\u201cmy_age\u201d, 12);\/\/\u6216Redis.Set(\u201cmy_age\u201d, 12);\r\n\t  \/\/Console.WriteLine(Redis.Get&lt;int&gt;(\u201cmy_age\u201d));\r\n\t  #endregion\r\n\t  var ser = new ObjectSerializer();    \/\/\u4f4d\u4e8enamespace ServiceStack.Redis.Support;\r\n\t  #region =\u5e8f\u5217\u5316=\r\n\t  \/\/bool result = Redis.Set&lt;byte[]&gt;(\u201cuserinfo\u201d, ser.Serialize(new UserInfo() { UserName = \u201d\u5f20\u4e09\u201d, Age = 12 }));\r\n\t  \/\/UserInfo userinfo = ser.Deserialize(Redis.Get&lt;byte[]&gt;(\u201cuserinfo\u201d)) as UserInfo;\r\n\t  \/\/Console.WriteLine(userinfo.UserName);\r\n\t  #endregion\r\n\t  \/\/\u4e5f\u652f\u6301\u5217\u8868\r\n\t  \/\/Redis.Set&lt;byte[]&gt;(\u201cuserinfolist_serialize\u201d, ser.Serialize(userinfoList));\r\n\t  #region =\u8d1f\u8f7d\u5747\u8861=\r\n\t  PooledRedisClientManager prcm = CreateManager(new string[] { \u201c10.0.4.210:6379\u2033 }, new string[] { \u201c10.0.4.210:6379\u2033 });\r\n\t  List&lt;UserInfo&gt; userinfoList = new List&lt;UserInfo&gt;();\r\n\t  userinfoList.Add(new UserInfo() { UserName = \u201cpool_daizhj\u201d, Age = 1 });\r\n\t  userinfoList.Add(new UserInfo() { UserName = \u201cpool_daizhj1\u2033, Age = 2 });\r\n\t  \/\/ \u4ece\u6c60\u4e2d\u83b7\u53d6\u4e00\u4e2a\u94fe\u63a5\uff1a\r\n\t  using (IRedisClient Redis2 = prcm.GetClient())\r\n\t  {\r\n\t\t  Redis2.Set(\u201cuserinfolist\u201d, userinfoList);\r\n\t\t  List&lt;UserInfo&gt; userList = Redis2.Get&lt;List&lt;UserInfo&gt;&gt;(\u201cuserinfolist\u201d);\r\n\t  }\r\n\t  #endregion\r\n\t  Console.ReadLine();\r\n  }\r\n  public static PooledRedisClientManager CreateManager(string[] readWriteHosts, string[] readOnlyHosts)\r\n  {\r\n\t  \/\/\u652f\u6301\u8bfb\u5199\u5206\u79bb\uff0c\u5747\u8861\u8d1f\u8f7d\r\n\t  return new PooledRedisClientManager(readWriteHosts, readOnlyHosts, new RedisClientManagerConfig\r\n\t  {\r\n\t\t  MaxWritePoolSize = 5,\/\/\u201c\u5199\u201d\u94fe\u63a5\u6c60\u94fe\u63a5\u6570\r\n\t\t  MaxReadPoolSize = 5,\/\/\u201c\u5199\u201d\u94fe\u63a5\u6c60\u94fe\u63a5\u6570\r\n\t\t  AutoStart = true,\r\n\t  });\r\n  }\r\n\r\nstatic void Main(string[] args)\r\n{\r\n   var Redis = new RedisClient(\u201c127.0.0.1\u2033, 6379);\/\/redis\u670d\u52a1IP\u548c\u7aef\u53e3\r\n\r\n   #region =insert=\r\n\r\n   \/\/var storeMembers = new List&lt;string&gt; { \u201djj\u201d, \u201dlihui\u201d, \u201dcc\u201d };\r\n   \/\/storeMembers.ForEach(x =&gt; Redis.AddItemToList(\u201cadditemtolist\u201d, x));\r\n   \/\/\u6ce8\uff1a\u4e5f\u53ef\u76f4\u63a5\u4f7f\u7528AddRangeToList\u65b9\u6cd5\u5c06\u4e00\u7ec4\u6570\u636e\u88c5\u5165\u5982\uff1a\r\n\r\n   \/\/Redis.AddRangeToList(\u201cadditemtolist\u201d, storeMembers);\r\n   #endregion\r\n\r\n   #region =get=\r\n\r\n   \/\/var members = Redis.GetAllItemsFromList(\u201cadditemtolist\u201d);\r\n   \/\/members.ForEach(s =&gt; Console.WriteLine(\u201cadditemtolist :\u201d + s));\r\n   \/\/Console.WriteLine(Redis.GetItemFromList(\u201cadditemtolist\u201d, 2));\r\n   #endregion\r\n\r\n   #region =delete=\r\n\r\n   \/\/var list = Redis.Lists[\"additemtolist\"];\r\n   \/\/list.Clear();\/\/\u6e05\u7a7a\r\n   \/\/list.Remove(\u201ctwo\u201d);\/\/\u79fb\u9664\u6307\u5b9a\u952e\u503c\r\n   \/\/list.RemoveAt(2);\/\/\u79fb\u9664\u6307\u5b9a\u7d22\u5f15\u4f4d\u7f6e\u6570\u636e\r\n   #endregion\r\n   #region =object=\r\n\r\n   \/\/Redis.Set(\u201cuserinfo\u201d, new UserInfo() { UserName = \u201d\u674e\u56db\u201d, Age = 45 });\r\n   \/\/UserInfo userinfo = Redis.Get&lt;UserInfo&gt;(\u201cuserinfo\u201d);\r\n   \/\/Console.WriteLine(userinfo.UserName);\r\n\r\n   \/\/Redis.Set&lt;int&gt;(\u201cmy_age\u201d, 12);\/\/\u6216Redis.Set(\u201cmy_age\u201d, 12);\r\n   \/\/Console.WriteLine(Redis.Get&lt;int&gt;(\u201cmy_age\u201d));\r\n   #endregion\r\n\r\n   var ser = new ObjectSerializer();    \/\/\u4f4d\u4e8enamespace ServiceStack.Redis.Support;\r\n   #region =\u5e8f\u5217\u5316=\r\n\t\/\/bool result = Redis.Set&lt;byte[]&gt;(\u201cuserinfo\u201d, ser.Serialize(new UserInfo() { UserName = \u201d\u5f20\u4e09\u201d, Age = 12 }));\r\n\t\/\/UserInfo userinfo = ser.Deserialize(Redis.Get&lt;byte[]&gt;(\u201cuserinfo\u201d)) as UserInfo;\r\n\t\/\/Console.WriteLine(userinfo.UserName);\r\n\t#endregion\r\n\r\n\t\/\/\u4e5f\u652f\u6301\u5217\u8868\r\n\t\/\/Redis.Set&lt;byte[]&gt;(\u201cuserinfolist_serialize\u201d, ser.Serialize(userinfoList));\r\n\r\n\t#region =\u8d1f\u8f7d\u5747\u8861=\r\n\r\n\tPooledRedisClientManager prcm = CreateManager(new string[] { \u201c10.0.4.210:6379\u2033 }, new string[] { \u201c10.0.4.210:6379\u2033 });\r\n\tList&lt;UserInfo&gt; userinfoList = new List&lt;UserInfo&gt;();\r\n\tuserinfoList.Add(new UserInfo() { UserName = \u201cpool_daizhj\u201d, Age = 1 });\r\n\tuserinfoList.Add(new UserInfo() { UserName = \u201cpool_daizhj1\u2033, Age = 2 });\r\n\r\n\t\/\/ \u4ece\u6c60\u4e2d\u83b7\u53d6\u4e00\u4e2a\u94fe\u63a5\uff1a\r\n\r\n\tusing (IRedisClient Redis2 = prcm.GetClient())\r\n\t{\r\n\t\tRedis2.Set(\u201cuserinfolist\u201d, userinfoList);\r\n\t\tList&lt;UserInfo&gt; userList = Redis2.Get&lt;List&lt;UserInfo&gt;&gt;(\u201cuserinfolist\u201d);\r\n\t}\r\n\r\n\t#endregion\r\n\tConsole.ReadLine();\r\n}\r\npublic static PooledRedisClientManager CreateManager(string[] readWriteHosts, string[] readOnlyHosts)\r\n{\r\n\t\/\/\u652f\u6301\u8bfb\u5199\u5206\u79bb\uff0c\u5747\u8861\u8d1f\u8f7d\r\n\treturn new PooledRedisClientManager(readWriteHosts, readOnlyHosts, new RedisClientManagerConfig\r\n\t{\r\n\t\tMaxWritePoolSize = 5,\/\/\u201c\u5199\u201d\u94fe\u63a5\u6c60\u94fe\u63a5\u6570\r\n\t\tMaxReadPoolSize = 5,\/\/\u201c\u5199\u201d\u94fe\u63a5\u6c60\u94fe\u63a5\u6570\r\n\t\tAutoStart = true,\r\n\t});\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<pre class=\"brush:c#; toolbar: true; auto-links: true;\">static void Main(string[] args)\r\n         {\r\n             var Redis = new RedisClient(\u201c127.0.0.1\u2033, 6379);\/\/redis\u670d\u52a1IP\u548c\u7aef\u53e3\r\n             #region =insert=\r\n             \/\/var storeMembers = new List&lt;string&gt; { \u201djj\u201d, \u201dlihui\u201d, \u201dcc\u201d };\r\n             \/\/storeMembers.ForEach(x =&gt; Redis.AddItemToList(\u201c...<\/pre>\n<p> <a href=\"https:\/\/www.xiaobo.li\/notes\/archives\/309\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[273],"tags":[125],"class_list":["post-309","post","type-post","status-publish","format-standard","hentry","category-article","tag-Redis"],"_links":{"self":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/309","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/comments?post=309"}],"version-history":[{"count":0,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/309\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/media?parent=309"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/categories?post=309"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/tags?post=309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}