1. 打开NuGet管理器搜索redis,安装:“StackExchange.Redis”

  

2. 配置 Web.config 文件

  <connectionStrings>
<add name="connStr" connectionString="mongodb://127.0.0.1:27017/mydb01" /> <!-- 在有些版本里面如果不带上数据库名称会出错 -->
<add name="redis" connectionString="127.0.0.1"/> <!-- Redis -->
</connectionStrings>

3. 添加 Redis.cs 文件

    public class Redis
{
private static readonly string redisConn = ConfigurationManager.ConnectionStrings["redis"].ToString(); #region 常用的数据库
public static IDatabase Top { get; } = GetDb();
public static IDatabase TopOauth { get; } = GetDb();
public static IDatabase TopService { get; } = GetDb();
#endregion
   /// <summary>
/// 获取数据库
/// </summary>
/// <param name="dbnumber"></param>
/// <returns></returns>
public static IDatabase GetDatabase(int dbnumber)
{
ConnectionMultiplexer server = ConnectionMultiplexer.Connect(redisConn);
return server.GetDatabase(dbnumber);
}
} /// <summary>
/// Redis缓存扩展:保存、获取、删除(不过其实好像没有用到,引用的框架了好像已经带有这个方法了)
/// </summary>
public static class RedisExt
{
/// <summary>
/// 保存一个对象(string类型)
/// </summary>
/// <param name="cache"></param>
/// <param name="key"></param>
/// <param name="value"></param>
/// <param name="experation"></param>
/// <returns></returns>
public static async Task<bool> SetAsync(this IDatabaseAsync cache, string key, object value,TimeSpan experation)
{
return await cache.StringSetAsync(key, JsonConvert.SerializeObject(value), experation);
} /// <summary>
/// 获取一个对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="cache"></param>
/// <param name="key"></param>
/// <returns></returns>
public static async Task<T> GetTAsync<T>(this IDatabaseAsync cache,string key)
{
var value = await cache.StringGetAsync(key).ConfigureAwait(false);
if(!value.IsNull)
{
return JsonConvert.DeserializeObject<T>(value);
}
else
{
return default(T);
}
} /// <summary>
/// 删除一个对象
/// </summary>
/// <param name="cache"></param>
/// <param name="key"></param>
/// <returns></returns>
public static async Task<bool> DelAsync(this IDatabaseAsync cache,string key)
{
return await cache.KeyDeleteAsync(key).ConfigureAwait(false);
}
}

4. Redis 的使用

        public async Task GetCodeAsync(string mobile)
{
string id = ObjectId.GenerateNewId().ToString();
var text = GetRandomString(); //验证码 //存储缓存(形式是这种形式,但实际应用不一定要这样用,要灵活运用key的形式)
await Redis.TopOauth.StringSetAsync($"SMSCODE:{mobile}", text.ToLower(), new TimeSpan(, , )); //发送手机验证码
} /// <summary>
/// 生成随机字符串
/// </summary>
/// <param name="length"></param>
/// <returns></returns>
private static string GetRandomString(int length)
{
return Guid.NewGuid().ToString("N").Substring(( - length), length);
}

  这里只使用了保存,还有获取和删除,要注意key要对应。

在 .NET项目中使用 Redis(2018.10.16)的更多相关文章

  1. 在项目中部署redis的读写分离架构(包含节点间认证口令)

    #### 在项目中部署redis的读写分离架构(包含节点间认证口令) ##### 1.配置过程 ---  1.此前就是已经将redis在系统中已经安装好了,redis utils目录下,有个redis ...

  2. Spring-Boot项目中配置redis注解缓存

    Spring-Boot项目中配置redis注解缓存 在pom中添加redis缓存支持依赖 <dependency> <groupId>org.springframework.b ...

  3. Redis学习笔记之二 :在Java项目中使用Redis

    成功配置redis之后,便来学习使用redis.首先了解下redis的数据类型. Redis的数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set( ...

  4. Redis的安装以及在项目中使用Redis的一些总结和体会

    第一部分:为什么我的项目中要使用Redis 我知道有些地方没说到位,希望大神们提出来,我会吸取教训,大家共同进步! 注册时邮件激活的部分使用Redis 发送邮件时使用Redis的消息队列,减轻网站压力 ...

  5. Django项目中使用Redis

    Django项目中使用Redis DjangoRedis 1 redis Redis 是一个 key-value 存储系统,常用于缓存的存储.django-redis 基于 BSD 许可, 是一个使 ...

  6. 在express项目中使用redis

    在express项目中使用redis 准备工作 安装redis 安装redis桌面管理工具:Redis Desktop Manager 项目中安装redis:npm install redis 开始使 ...

  7. 【新手总结】在.Net项目中使用Redis作为缓存服务

    最近由于项目需要,在系统缓存服务部分上了redis,终于有机会在实际开发中玩一下,之前都是自己随便看看写写,很零碎也没沉淀下来什么,这次算是一个系统学习和实践过程的总结. 和Redis有关的基础知识 ...

  8. 在.Net项目中使用Redis作为缓存服务

    转自:http://www.cnblogs.com/hohoa/p/5771255.html 最近由于项目需要,在系统缓存服务部分上了redis,终于有机会在实际开发中玩一下,之前都是自己随便看看写写 ...

  9. Django项目中关于redis包版本的坑

    1.环境 python:3.6 django:1.11.8 redis:3.2.1 2.遇到的问题 报错:redis.exceptions.DataError: Invalid input of ty ...

  10. SpringBoot项目中,Redis的初次使用

    1.引入Redis依赖包,在application.yml中配置redis <dependency> <groupId>org.springframework.boot< ...

随机推荐

  1. eclipse 安装 lombok插件

    下载插件 官网下载 :https://projectlombok.org/ 有些小伙伴官网可能打不开,现提供我的下载地址:https://files.cnblogs.com/files/niceyoo ...

  2. sql server创建windows账户

    --不要干坏事 sql server中使用xp_cmdshell --1.允许配置高级选项 GO RECONFIGURE GO --2.开启xp_cmdshell服务 RECONFIGURE GO - ...

  3. Java 基础 IO流

    一,前言 在前面的学习过程中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现在我们就要开始给文件中写数据,或者读取文件中的数据. 二,字节流 2.1 字节输出流 OutputStrea ...

  4. 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序

    npm install  webpack-dev-server --save

  5. #WEB安全基础 : HTTP协议 | 0x7 学会使用wireshark分析数据包

    wireshark是开源,免费,跨平台的抓包分析工具 我们可以通过wireshark学习HTTP报文和进行抓包分析,在CTF中的流量分析需要用到抓包 1.下载和安装 这是wireshark的官网 ht ...

  6. 记oracle使用expdp将数据导出到asm报错

    报错信息如下: ORA-39002: invalid operationORA-39070: Unable to open the log file.ORA-29283: invalid file o ...

  7. 记使用talend从oracle抽取数据时,数字变为0的问题

    数据源为oracle,字段类型为number. 发现通过mainline连接到一个logrow控件,输入的该字段的值为0 经过多次测试还是没发现有什么规律. 通过查看代码发现有这一句内容. if (r ...

  8. JavaWeb-----ServletConfig对象和servletContext对象

    1.ServletConfig ServletConfig:代表当前Servlet在web.xml中的配置信息 String getServletName()  -- 获取当前Servlet在web. ...

  9. Restful API接口调用的方法总结

    restful 接口调用的方法 https://www.cnblogs.com/taozhiye/p/6704659.html http://www.jb51.net/article/120589.h ...

  10. 《CSS世界》读书笔记(七)

    <!-- <CSS世界> 张鑫旭著 --> 替换元素 根据是否具有可替换内容,我们可以把元素分为替换元素和非替换元素. <img>.<object>.& ...