zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    oracle 使用正则表达式获取字符串中包含的数字
    oracle 将逗号分隔的字符串转成多行记录
    sqlplus下 查看oracle 执行计划
    使用connect by 虚拟生成100条记录
    Lomsat gelral
    Legacy
    慢慢变小的序列(好题)
    Walls(扫描线)
    线段树求面积并,面积交,周长
    最小圆覆盖(随机增量||模拟退火)
  • 原文地址:https://www.cnblogs.com/zt102545/p/13940223.html
Copyright © 2011-2022 走看看