为什么要在Asp.Net MVC项目中使用Redis缓存呢?系统是按照高负载高并发来设计的,这就涉及服务器集群带来的问题,Session存储验证码或登录信息,在系统登录的时候,可能展示登录界面和存储验证码是一台服务器,登录验证的时候又是另外一个服务器,就会造成验证码找不到、重复登录等现象,所以必须系统公用的信息数据存储在一个地方,所有的服务器都从这个地方获取,这时我们就要用到Redis了,为什么要用Redis?Redis有什么优点?请自行度娘。下面我跟小伙伴们说说如何在C#Asp.Net MVC使用Redis,希望对遇到同样问题的小伙伴少走弯路,谢谢。
首先,下载Windows版的Redis3.2.1,官网不提供Windows版本下载,解压后的文件如下图,远程连接我已经配置好了,密码是123456,运行Redis我也做了一个名为StartUp的批处理文件,就不用每次运行Redis都要进入Dos界面了。
Redis启动完成
其次,在项目中引用RedisHelper类库,工具–Nuget程序包管理–管理解决方案的Nuget程序包–联机,搜索“RedisHelper”,选中下图红框选项安装,我已经安装了右上角会有个绿色的钩,安装过程可能需要10-15分钟,安装好之后就变需要配置Redis连接信息,在web.config文件appSetting节点添加主Redis服务器<add key="RedisHostServers" value="123456@127.0.0.1:6379?db=1" />
,从Redis服务器的连接字符串<add key="RedisSlaveServers" value="192.168.0.105:6379?db=1"/>
,其中123456代表密码,没有密码可以把123456@去掉,127.0.0.1:6379是Redis服务的IP和端口,db=1代表那个数据库。
然后,使用RedisHelper类库,存储、获取、删除数据,存储RedisHelper.Set(Key, Value, DateTime)
,DateTime不提供默认是-1,不会过期,如果存储一样的Key之前的值会被覆盖;获取RedisHelper.Get<T>(Key)
,T是当初存储是什么类型,如果值不存在返回null;删除RedisHelper.Remove(key);
最后,安装redis-desktop-manager查看数据,连接Redis服务器,输入IP,端口,有密码输密码,没有密码留空,测试连接是否连接成功,Redis默认创建16个数据库,如下图