.NET中Redis的使用

数据库 其他数据库 Redis
1.下载Redis代码,地址:https://github.com/MSOpenTech/redis 2.解压后用Visual Studio 2013 打开\msvs\RedisServer.sln并进行编译,此为C++项目,需用C++编译器编译。 3.选择所需要的版本编译,把编译好的Release文件拷贝到你所要安装的目录,然后把\msvs\setups\documentation中的redis.windows.conf拷贝到Release文件中。

   一、windows服务器中配置Redis

  1.下载Redis代码,地址:https://github.com/MSOpenTech/redis

  2.解压后用Visual Studio 2013 打开\msvs\RedisServer.sln并进行编译,此为C++项目,需用C++编译器编译。

  3.选择所需要的版本编译,把编译好的Release文件拷贝到你所要安装的目录,然后把\msvs\setups\documentation中的redis.windows.conf拷贝到Release文件中。

  

 

  如将文件拷贝到C盘中,把文件重命名为Redis-2.8,即为C:\Redis-2.8

  4.打开控制台程序 cmd.exe

  (1)安装:输入 c:\Redis-2.8\redis-server --service-install redis.windows.conf --loglevel verbose

  (2)开启服务:输入 c:\Redis-2.8\redis-server --service-start

  (3)关闭服务: 输入 c:\Redis-2.8\redis-server --service-uninstall

  二、Redis的简单使用

  现在再开一个控制台应用程序连接之前启动的Redis,如下:

  C:\Redis-2.8>redis-cli.exe -h 127.0.0.1 -p 6379

  其中 –h后面是本机的ip地址,后面的是端口。

  然后就可以执行set 给key为city赋值:

  127.0.0.1:6379> set city FoShan

  通过get可以获取指定key为city的值了。

  127.0.0.1:6379> get city

  

 

  三、在asp.net应用程序中实现Redis的应用(新建一个RedisClientDemo项目)

  1.下载ServiceStack.Redis,地址:https://github.com/ServiceStack/ServiceStack.Redis

  2.解压后打开\src\ServiceStack.Redis.sln解决方案,编译后,将\src\ServiceStack.Redis\bin\Debug下的4个dll文件引用到新建的RedisClientDemo项目中。

  3.Redis的一些简单运用

  1. public partial class _Default : System.Web.UI.Page 
  2.     { 
  3.         static RedisClient redisClient = new RedisClient("127.0.0.1", 6379);//redis服务IP和端口 
  4.         protected void Page_Load(object sender, EventArgs e) 
  5.         { 
  6.             StringBuilder str = new StringBuilder(); 
  7.             str.Append(redisClient.Get<string>("city")); 
  8.  
  9.             //将字符串列表添加到redis 
  10.  
  11.             List<string> storeMembers = new List<string>() { "one""two""three" }; 
  12.             storeMembers.ForEach(x => redisClient.AddItemToList("additemtolist", x)); 
  13.  
  14.             //得到指定的key所对应的value集合 
  15.  
  16.             var members = redisClient.GetAllItemsFromList("additemtolist"); 
  17.             members.ForEach(s => str.Append("<br/>additemtolist :" + s)); 
  18.  
  19.             // 获取指定索引位置数据 
  20.             var item = redisClient.GetItemFromList("addarrangetolist", 2); 
  21.             str.Append(item); 
  22.  
  23.             //移除数据 
  24.  
  25.             var list = redisClient.Lists["addarrangetolist"]; 
  26.             list.Clear();//清空 
  27.             list.Remove("two");//移除指定键值 
  28.             //  list.RemoveAt(2);//移除指定索引位置数据 
  29.  
  30.             //存储对象(JSON序列化方法)它比object序列化方法效率高 
  31.             redisClient.Set<UserInfo>("userinfo", new UserInfo() { UserName = "李四", Age = 45 }); 
  32.             UserInfo userinfo = redisClient.Get<UserInfo>("userinfo"); 
  33.             str.Append("<br/>name=" + userinfo.UserName + " age=" + userinfo.Age); 
  34.  
  35.             //存储值类型数据 
  36.             redisClient.Set<int>("my_age", 12);//或redisClient.Set("my_age", 12); 
  37.             int age = redisClient.Get<int>("my_age"); 
  38.             str.Append("<br/>age=" + age); 
  39.  
  40.             //object序列化方式存储 
  41.             var ser = new ObjectSerializer();    //位于namespace ServiceStack.redisClient.Support; 
  42.             bool result = redisClient.Set<byte[]>("userinfo2", ser.Serialize(new UserInfo() { UserName = "张三", Age = 12 })); 
  43.             UserInfo userinfo2 = ser.Deserialize(redisClient.Get<byte[]>("userinfo2")) as UserInfo; 
  44.             str.Append("<br/>name=" + userinfo2.UserName + " age=" + userinfo2.Age); 
  45.  
  46.             //也支持列表 
  47.             List<UserInfo> userinfoList = new List<UserInfo> { 
  48.             new UserInfo{UserName="zzl",Age=1,Id=1}, 
  49.             new UserInfo{UserName="zhz",Age=3,Id=2}, 
  50.             }; 
  51.             redisClient.Set<byte[]>("userinfolist_serialize", ser.Serialize(userinfoList)); 
  52.             List<UserInfo> userList = ser.Deserialize(redisClient.Get<byte[]>("userinfolist_serialize")) as List<UserInfo>; 
  53.             userList.ForEach(i => 
  54.             { 
  55.                 str.Append("<br/>name=" + i.UserName + " age=" + i.Age); 
  56.             }); 
  57.  
  58.             p1.InnerHtml = str.ToString(); 
  59.         } 
  60.     } 
  61.  
  62.     [Serializable
  63.     public class UserInfo 
  64.     { 
  65.         public int Id { get; set; } 
  66.         public string UserName { get; set; } 
  67.         public int Age { get; set; } 
  68.     } 

 

责任编辑:honglu 来源: 博客园
相关推荐

2024-11-12 07:28:39

2021-11-14 07:34:57

.NETEventCounte性能

2012-07-11 14:31:16

SpringAop

2009-06-26 10:48:45

职责链模式.NET

2024-06-21 14:41:52

2009-01-08 10:20:56

AutoCompletAjaxASP.NET

2009-01-16 13:17:16

AjaxASP.NET.NET

2024-03-14 11:57:53

.NET Core反射开发

2009-07-23 16:44:51

AdRotator控件ASP.NET

2009-07-30 12:19:32

ASP.NET中使用A

2009-07-20 15:39:32

ASP.NET缓存

2009-10-29 09:15:32

ASP.NET MVCDropDownLis

2009-07-27 10:12:37

GridView和Ob

2018-12-24 12:40:03

大数据IT互联网

2009-03-06 10:28:30

MVCASP.NET异步Action

2009-07-20 15:27:22

Castle.DynaiBATIS.NET

2022-12-08 08:00:00

.NET 7BitArray数据执行

2024-03-14 10:43:23

.NET CoreRedis数据库

2010-04-20 09:40:38

ADO.NET Ent

2019-07-02 15:21:39

缓存NET单线程
点赞
收藏

51CTO技术栈公众号