NET操作Redis

Redis安装

下载地址:https://github.com/microsoftarchive/redis/releases
在这里插入图片描述
下载完后直接解压。
相关程序说明:

  • redis.windows.conf:
    是redis的配置文件。
  • redis-server.exe:
    服务器端。
  • redis-cli:
    命令行客户端。
  • redis-benchmark:
    Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能。

Redis启动

启动Redis服务端的三种方式:

  1. CMD命令行切换到Redis文件目录下执行
	redis-server  redis.windows.conf
  1. 进入Redis文件目录直接右键管理员运行redis-server.exe程序
  2. 将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
posted @ 2019-08-01 11:10  漂移青春  阅读(78)  评论(0编辑  收藏  举报