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. [js]js设计模式-构造函数模式

    构造函数模式 function WriteJsPerson(name,age) { this.name=name; //不用手动创建obj this.age = age; this.writeJs=f ...

  2. vue-amap | 基于 Vue 2.x 与高德的地图组件

    vue-amap | 基于 Vue 2.x 与高德的地图组件 参考:https://elemefe.github.io/vue-amap/#/

  3. COM中参数标识

  4. Feign 与 Hystrix

    Feign 与 Hystrix Feign是一个声明式的web服务客户端,它使得web服务调用非常的简单,当我们使用Feign时,Spring Cloud 整合了Ribbon和Eureka,从而为我们 ...

  5. 《数据仓库ETL工具箱》读书笔记

    在本书中,你将学习到以下内容: 规划&设计你的ETL系统 从多种可能的架构中选出最合适的 对实施过程进行管理 管理日常的操作 为ETL过程建立开发/测试/生产环境 理解不同的后台数 ...

  6. 雾霾天出行,如何精确避开“雷区”?2016 SODA数据侠十强

    (2016年参加了上海 SODA 竞赛,进入前十,最终获得上海市的两个奖项.) ▍跟踪雾霾,仅靠零星的监测点数据怎么行? 如果雾霾短期内没有办法彻底根治,我们可以做什么,把环境污染物对人的影响尽可能降 ...

  7. element table 二次封装 父子组件传值 组件通信

    新建一个组件(即子组件)table.vue 子组件编辑内容如下图所示 子组件通过props获取父组件传递过来的参数,如下图所示,type指明传递到子组件的数据类型,default指定默认值,一般不给 ...

  8. docker overlay

    http://blog.csdn.net/jiangshouzhuang/article/details/52822125

  9. 传值与传引用(C++)

    reference(引用) 是C++对C的一个扩充 int a; int &b = a;//声明b是一个整形的引用变量 C语言,函数的参数传递有2种形式:传值方式调用和传引用方式调用 传值方式 ...

  10. 第五讲 DOM基础

    DOM基础: 什么是DOM:其实就是dovument,div获取.修改样式等等,但是不只是js的组成部分,而且还是一套规范,规定了这些浏览器怎么处理这些操作: 浏览器支持情况:IE(IE7-8,10% ...