在nuget中下载ServiceStack.Redis,但是运行之后会出现一个问题:
Exception: “Com.JinYiWei.Cache.RedisHelper”的类型初始值设定项引发异常。System.TypeInitializationException: “Com.JinYiWei.Cache.RedisHelper”的类型初始值设定项引发异常。 ---> System.TypeLoadException: 程序集“ServiceStack.Redis, Version=3.9.71.0, Culture=neutral, PublicKeyToken=null”中的类型“ServiceStack.Redis.RedisNativeClient”的方法“get_Db”没有实现。
查了下原来是版本问题,我的解决方法如下:
修改几个重要的dll的版本:<package id="ServiceStack.Common" version="3.9.71" targetFramework="net45" /><package id="ServiceStack.Redis" version="3.9.71" targetFramework="net45" /><package id="ServiceStack.Text" version="3.9.11" targetFramework="net45" />如果不好下载,使用nuget命令就可以了:
Install-Package ServiceStack.Common -Version 3.9.71code如下:
using(RedisClient redisClient = new RedisClient("123.207.96.138", 6379)){string str = "second";bool IsSet = false;if (IsSet = redisClient.Set("second", "www.cjjjs.com")){string getMessage = redisClient.Get (str);Console.WriteLine(getMessage);}else{Console.WriteLine("redis键入键值失败...");}Console.Read();}
但是有个地方要注意,使用Set函数的时候,因为使用Get<string>来获取,设置的时候就需要Set<string>来设置,我已开始使用的是Set,导致不能获取到值,这是要值得注意的地方。
尝试了一下在两个不同的站点部署两个网站,使用redis来存储数据,的确成功了,这就有点类似于使用数据库来存储了,只不过redis这样的nosql数据库效率更高。原本我是使用redis来存储session,但是在跨域方面就是失败!!!尝试了两种实现都不行,参考如下:
以及我的博客:哎,后续研究吧,反正一跨域就是失败。
哎,寝室很烦,很吵,没有心思写代码,写博客。图书馆没电!!!这坑比学校,没有校园网就算了,图书馆还时不时没电。