NET操作Redis
Redis安装
下载地址:https://github.com/microsoftarchive/redis/releases
下载完后直接解压。
相关程序说明:
- redis.windows.conf:
是redis的配置文件。 - redis-server.exe:
服务器端。 - redis-cli:
命令行客户端。 - redis-benchmark:
Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能。
Redis启动
启动Redis服务端的三种方式:
- CMD命令行切换到Redis文件目录下执行
redis-server redis.windows.conf
- 进入Redis文件目录直接右键管理员运行redis-server.exe程序
- 将redis-server.exe程序设置为window服务。
CMD命令行切换到Redis文件目录执行以下指令
redis-server --service-install redis.windows.conf //安装服务
redis-server --service-start //启动服务
redis-server --service-stop //停止服务
redis-server --service-uninstall //卸载服务
启动Redis客户端可以直接运行redis-cli.exe
NET操作Redis
NET操作Redis需要使用第三方库,一般都是使用 StackExchange.Redis 和 ServiceStack.Redis。SE是免费的,SS是收费的,这两个dll都能通过NuGet安装。
ServiceStack.Redis:
在项目下用NuGet下载引用。ServiceStack 4.0 开始已经成为商业产品,不再完全免费,限制每小时只能访问Redis 6000次 ,好在是开源的,网上有办法修改,这里不讨论。
StackExchange.Redis:
本文用的是StackExchange.Redis,封装了一个帮助类:
StackExchange.Redis帮助类
操作实例
#region 存储登录的SessionID信息
JHSession session = new JHSession();
session.userid = user.id;
session.username = user.account;
HttpContext.Session.Set("login", Encoding.UTF8.GetBytes("login"));
session.sessionid = HttpContext.Session.Id;
session.useraddress = Request.HttpContext.Connection.RemoteIpAddress.ToString();
session.userbrowserinfo = Request.Headers["HeaderUserAgent"];
session.timeout = 30;
session.createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
session.updatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
RedisHelper redis = new RedisHelper();
await redis.Set(user.id, session);
#endregion
#region 读取session信息
string userid = "";
if (httpContext.Request.Cookies["user_id"] != null)
{
userid = httpContext.Request.Cookies["user_id"];
}
if (userid != null)
{
RedisHelper redis = new RedisHelper();
var keyExists = await redis.KeyExists(userid);
if (keyExists)
{
//JHSession value = (JHSession)userOnline[userid];
var value = await redis.Get<JHSession>(userid);
if (value != null)
{
//处理逻辑
}
}
}
#endregion