MATLAB 2017-12-02
在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.71
code如下:
using(RedisClient redisClient = new RedisClient("123.207.96.138", )) { string str = "second"; bool IsSet = false; if (IsSet = redisClient.Set<string>("second", "www.cjjjs.com")) { string getMessage = redisClient.Get<string>(str); Console.WriteLine(getMessage); } else { Console.WriteLine("redis键入键值失败..."); } Console.Read(); }
但是有个地方要注意,使用Set函数的时候,因为使用Get<string>来获取,设置的时候就需要Set<string>来设置,我已开始使用的是Set,导致不能获取到值,这是要值得注意的地方。
尝试了一下在两个不同的站点部署两个网站,使用redis来存储数据,的确成功了,这就有点类似于使用数据库来存储了,只不过redis这样的nosql数据库效率更高。原本我是使用redis来存储session,但是在跨域方面就是失败!!!尝试了两种实现都不行,参考如下:
【新手总结】在.Net项目中使用Redis作为缓存服务
《分布式中Redis实现Session终结篇》
以及我的博客:
asp.net 分布式探讨之Session共享问题
哎,后续研究吧,反正一跨域就是失败。
哎,寝室很烦,很吵,没有心思写代码,写博客。图书馆没电!!!这坑比学校,没有校园网就算了,图书馆还时不时没电。