在 .NET项目中使用 Redis(2018.10.16)
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)的更多相关文章
- 在项目中部署redis的读写分离架构(包含节点间认证口令)
#### 在项目中部署redis的读写分离架构(包含节点间认证口令) ##### 1.配置过程 --- 1.此前就是已经将redis在系统中已经安装好了,redis utils目录下,有个redis ...
- Spring-Boot项目中配置redis注解缓存
Spring-Boot项目中配置redis注解缓存 在pom中添加redis缓存支持依赖 <dependency> <groupId>org.springframework.b ...
- Redis学习笔记之二 :在Java项目中使用Redis
成功配置redis之后,便来学习使用redis.首先了解下redis的数据类型. Redis的数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set( ...
- Redis的安装以及在项目中使用Redis的一些总结和体会
第一部分:为什么我的项目中要使用Redis 我知道有些地方没说到位,希望大神们提出来,我会吸取教训,大家共同进步! 注册时邮件激活的部分使用Redis 发送邮件时使用Redis的消息队列,减轻网站压力 ...
- Django项目中使用Redis
Django项目中使用Redis DjangoRedis 1 redis Redis 是一个 key-value 存储系统,常用于缓存的存储.django-redis 基于 BSD 许可, 是一个使 ...
- 在express项目中使用redis
在express项目中使用redis 准备工作 安装redis 安装redis桌面管理工具:Redis Desktop Manager 项目中安装redis:npm install redis 开始使 ...
- 【新手总结】在.Net项目中使用Redis作为缓存服务
最近由于项目需要,在系统缓存服务部分上了redis,终于有机会在实际开发中玩一下,之前都是自己随便看看写写,很零碎也没沉淀下来什么,这次算是一个系统学习和实践过程的总结. 和Redis有关的基础知识 ...
- 在.Net项目中使用Redis作为缓存服务
转自:http://www.cnblogs.com/hohoa/p/5771255.html 最近由于项目需要,在系统缓存服务部分上了redis,终于有机会在实际开发中玩一下,之前都是自己随便看看写写 ...
- Django项目中关于redis包版本的坑
1.环境 python:3.6 django:1.11.8 redis:3.2.1 2.遇到的问题 报错:redis.exceptions.DataError: Invalid input of ty ...
- SpringBoot项目中,Redis的初次使用
1.引入Redis依赖包,在application.yml中配置redis <dependency> <groupId>org.springframework.boot< ...
随机推荐
- Mac破解免费office软件
一.下载安装包及破解工具 地址: https://pan.baidu.com/s/1hugtoLQ 密码: s5in 附官网地址 文件夹中包含三个文件: Office16安装文件 Microsoft_ ...
- selenium case报错重新执行
在做web ui自动化的过程中,经常发现这样一种情况,执行时case报错啦,再重新执行一遍又成功了. 如果不解决这个问题,脚本稳定性就会变差,很让人蛋疼,怎么解决呢: 思路: 写一个装饰器,装饰在ca ...
- 《linux就该这么学》第二节课,安装红帽7,基础命令至2.3小节的笔记
笔记 实验环境: 1.安装注意事项:使用VM12版本 安装需要稍后安装系统. 自定义硬件DVD选择镜像位置. 自定义网卡仅主机. 自定义内存:大于等于4G,给予虚拟机2G,大于2G小于 ...
- Linux+DDoS deflate 预防DDoS攻击
使用DDoS脚本防止DDoS攻击 使用DDoS脚本防止DDoS攻击: DDoS概述: 分布式拒绝服务(DDoS:Distributed Denial of Service)攻击,指借助于客户/服务 ...
- 关于PChar(@string)的疑惑
看到一篇博客关于讲Delphi中MOVE的例子,心生疑惑.记录下自己的实验,虽然我也不知道这是啥... program Project1; {$APPTYPE CONSOLE} uses SysUti ...
- 杨韬的Python/Jupyter学习笔记
Python语法学习 https://zhuanlan.zhihu.com/p/24162430 Python 安装库 安装Jupyter Notebook 先安装Python cmd 进入K:\Ju ...
- IP通信基础学习第一周
在IP方向上,IP通信基础是学习其他诸如:数字程教控交换技术与应用.IPV6技术与应用.SDH传输技术与应用等课程的基础. 学习IP通信基础,对学生而言至少可以拿学分,不仅有利于以后的学习,还有机会从 ...
- Tomcat日志文件catalina.out文件过大问题
随着项目的运行,Tomcat的日志文件catalina.out的大小日益增大,现在都有好几个GB了.如果我们不做任何处理,catalina.out的文件大小将会持续增加,直到把我们的系统硬盘空间给撑爆 ...
- Linux 系统开启随机端口数量 调优
Linux系统随机端口 默认Linux系统开启的随机端口范围为 32768 ~ 65535.客户端连接服务监听端口需要使用到随机端口连接. Linux系统随机端口调优 1.添加内核配置参数:/etc/ ...
- weblogic10补丁升级与卸载
1.首先将补丁包解压放在weblogic的utils/bsu/cache_dir文件夹下,如果没有该文件夹,则手动创建. 2.回到bsu目录,执行安装命令 C:\Oracle\Middleware\u ...