.net Redis缓存优化提高加载速度和服务器性能(二)

上文详细测试了每次都读取数据库的接口和通过缓存读取接口的性能对比

这里我们就准备实际简介肿么将原来的数据库加上Redis缓存优化部分接口

1.下载Redis和Redis视图管理工具

点击下载 提取码: 9tgg       备用下载地址

下载完成后先安装Redis再安装Redis视图管理工具

打开后入下图所示

安装好必要软件后我们就开始软件上的改动

首先需要给项目添加 StackExchange.Redis.dll引用

这个文件你可以在Nuget上下载也可以在用我下面提供的版本

如果使用nuget右键项目管理nuget程序包,然后选中右上角的浏览

在搜索框中输入Redis搜索后找到 StackExchange.Redis

请注意查看下方有版本依赖需求的因为我的mvc是依赖于.netFramwork4.5的所以我这里选择了一个版本相对较低的1.1.608来安装

当然你也可以使用下载dll通过右键添加-引用方式来添加dll

点击下载 提取码: jcs1    备用下载地址

添加所需的dll过后我们需要添加RedisHelper来简便我们的操作

 

将我的RedisHelper复制至项目

点击下载 提取码: u25p    备用下载地址

 

请注意复制后请修改namespace为你的项目namespace地址,如果dll引用没有请添加对应引用

由于helper里写了读取web.confg数据库连接地址里面的地址

所以请在web.config添加如下代码

 <connectionStrings><add name="RedisExchangeHosts" connectionString="127.0.0.1:6379,allowadmin=true"/></connectionStrings>

添加完成后基本就完成了对Redis的引用了

下面就可以在你的控制器里面添加Redis的代码了

 RedisHelper redis = new RedisHelper(1);

这个是初始化Redis,1代表连接第2个数据库,如果给为0的话就是连接第一个数据库

使用代码如下所示:

 using (MiniProfiler.Current.Step("开始加载数据:")){try{//判断是否走缓存加载全场折扣if (redis.StringGet<AllDiscount>("AllDiscount" + shopid) != null){MiniProfiler.Current.Step("从Redis服务器中加载数据:");allDiscount = redis.StringGet<AllDiscount>("AllDiscount" + shopid);}else{MiniProfiler.Current.Step("从MSSQL服务器中加载数据:");allDiscount = ds.GetModel<AllDiscount>(m => m.Entid == shopid && m.Isopen == true && m.StartDate <= now && m.EndDate >= now);redis.StringSet<AllDiscount>("AllDiscount" + shopid, allDiscount, TimeSpan.FromHours(2));}}catch (Exception e){MiniProfiler.Current.CustomTiming("Errors:", "Redis服务未启用,请开启该服务,并且请注意端口号,本项目使用的的6319,而且我的是没有设置密码。" + e.Message);allDiscount = ds.GetModel<AllDiscount>(m => m.Entid == shopid && m.Isopen == true && m.StartDate <= now && m.EndDate >= now);}}

在学习Redis和写本文中大量参考了https://www.cnblogs.com/cang12138/p/8884362.html 这篇博主的博文,如果看完本文看玩还不懂的话建议再去看看此文,同时欢迎加博主的QQ:864015769 进行讨论,虽然博主也是一个小菜鸡(叫我时请备注一下CSDN看到的不然博主可能会不同意)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET数据库访问系列教程01-概述篇 创建数据访问层(下)

ASP.NET数据库访问系列教程 本教程深入探讨了基于ASP.NET 2.0技术的数据库访问方法和模式。这些介绍非常简明&#xff0c;并且提供了一步步的指导和大量的截屏。 该系列教程包括&#xff1a; 概述篇 基础报表 主/明细报表 自定义格式报表 编辑&#xff0c;插入和删除数据 分页和…

C# 淘宝商品微信返利助手开发-(五)返利助手开发(3)淘口令如何通过API转换为链接

系列教程一目录&#xff1a;返利助手原理 系列教程二目录&#xff1a;返利助手开放文档以及帐号申请地址 系列教程三目录&#xff1a;返利助手开发&#xff08;1&#xff09;API介绍 系列教程四目录&#xff1a;返利助手开发&#xff08;2&#xff09;淘宝分享的内容如何只取…

C# 淘宝商品微信返利助手开发-(六)返利助手开发(4)如何通过淘口令解析的出来的地址获得返利信息

系列教程一目录&#xff1a;返利助手原理 系列教程二目录&#xff1a;返利助手开放文档以及帐号申请地址 系列教程三目录&#xff1a;返利助手开发&#xff08;1&#xff09;API介绍 系列教程四目录&#xff1a;返利助手开发&#xff08;2&#xff09;淘宝分享的内容如何只取…

template标签_Django实战: 利用自定义模板标签实现仿CSDN博客月度归档

应网友慕之岩的请求&#xff0c;现提供下Django项目中如何使用自定义标签实现仿CSDN博客的月度归档(如下图所示)。要求按月统计每个月发表的博文篇数, 跳过空白月份&#xff0c;最后结果按发布时间逆序排列。点击每个月份可以看到详细博文列表清单。本文着重讲述如何实现&#…

javascript的stack overflow

写一个很简单的页面和脚本 1<html>2<head>3<title>fanweixiaos test</title>4<script type"text/javascript">5function onclick() 6{ 7 alert(范维肖); 8} 9</script>10</head>11<body>12<input type"b…

Hibernate中inverse属性与cascade属性

Hibernate集合映射中&#xff0c;经常会使用到"inverse"和"cascade"这两个属性。对于我这样&#xff0c;Hibernate接触不深和语文水平够烂的种种因素&#xff0c;发现这两个属性实在是难以理解&#xff0c;无奈只好将这个两个属性解释工作交给了Google和Ba…

h5 nan_h5页面在不同ios设备上的问题总结

最近在写嵌入到小程序webview的一个h5页面&#xff0c;是一个文章评论的功能&#xff0c;这个过程中&#xff0c;遇到很多兼容性的问题&#xff0c;在不同机型上的表现也很不一致&#xff0c;所以总结了以下这些问题&#xff0c;记录下来&#xff0c;以便以后查看。1、日期问题…

C# 淘宝商品微信返利助手开发-(七)返利助手开发(5)如何将优惠券地址转为淘口令

系列教程一目录&#xff1a;返利助手原理 系列教程二目录&#xff1a;返利助手开放文档以及帐号申请地址 系列教程三目录&#xff1a;返利助手开发&#xff08;1&#xff09;API介绍 系列教程四目录&#xff1a;返利助手开发&#xff08;2&#xff09;淘宝分享的内容如何只取…

ftp改为sftp_科普!一文详解 FTP、FTPS 与 SFTP 的原理

FTP、FTPS 与 SFTP 简介FTPFTP 即 文件传输协议&#xff08;英语&#xff1a;File Transfer Protocol 的缩写&#xff09;是一个用于计算机网络上在客户端和服务器之间进行文件传输的应用层协议。完整的 FTP 是由 FTP 服务器 和 FTP 客户端组成的&#xff0c;客户端可以将本地的…

动手学servlet(四) cookie和session

Cookie cookie是保存在客户端的一个“键值对”&#xff0c;用来存储用户的一些信息 cookie的应用&#xff1a; -在电子商务会话中标识用户 -对网站进行定制&#xff0c;比如你经常浏览哪些内容&#xff0c;就展示哪些页面给你 -网站广告&#xff0c;比如百度联盟&#xff0c;你…

16进制 转为图片 php_Python 十六进制hex-bytes-str之间的转换和Bcc码的生成

前言近期做测试模拟器用到了hex-bytes-str之间的转换bcc码的校验&#xff0c;这里总结了一些方法。实例直接上代码转为十六进制&#xff08;Hex&#xff09;字符串def 执行代码&#xff1a;方法&#xff1a;getStringFromNumber(size,value)参数一为生成几个batys&#xff0c;参…

推荐一个国外SaaS产品-Olark

Olark www.olark.com 是国外非常出名的一个在线客服工具。 现在国内很多人创业失败的原因是&#xff1a;什么都想自己做&#xff0c;不利用现有资源&#xff0c;结果造成做出来的东西什么都有&#xff0c;什么都不好用。 我们应该好好学习国外的小团队&#xff0c;他们只做一件…

粗暴,干就完了----徐晓冬似的C语言自学笔记-----实现一个链表结构

1 #include <stdio.h>2 #include <stdlib.h>3 #define N 54 /*N 假定数组长度为5*/5 typedef struct snode6 {7 int data;8 struct snode *next; 9 } SNODE;10 11 /*第一步&#xff0c;添加链表头信息*/12 SNODE *createhead(int a[])13 {14 SNODE *h,…

C# 淘宝商品微信返利助手开发-(二)返利助手开放文档以及帐号申请地址

系列教程一目录&#xff1a;返利助手原理 系列教程二目录&#xff1a;返利助手开放文档以及帐号申请地址 系列教程三目录&#xff1a;返利助手开发&#xff08;1&#xff09;API介绍 系列教程四目录&#xff1a;返利助手开发&#xff08;2&#xff09;淘宝分享的内容如何只取…

比较难的sql面试题,令我比较郁闷!

一组通话记录&#xff08;总共500万条&#xff09;:ID 主叫号码 被叫号码 通话起始时间 通话结束时间 通话时长1 98290000 0215466546656 2007-02-01 09:49:53.000 2007-02-01 09:50:16.000 232 98290000 021546654666 2007-02-01 09:50:29.000 2007-02-01 09:5…

阿里云ESC服务器数据快速转移至轻量应用服务器

ECS服务器的换ECS的服务器已有的数据转换就很简单了&#xff0c;直接创建自定义镜像&#xff0c;创建完成后新服务器直接更换系统盘然后选择你创建的镜像就直接吧你的数据可软件一起直接移到新的ECS的服务器了 可是坑爹的是&#xff0c;新买的轻量应用服务器里面左找右找也找…

js udp通信_nodejs源码分析第十九章 -- udp模块

udp不是面向连接的协议&#xff0c;所以使用上会比tcp简单&#xff0c;他和tcp一样&#xff0c;使用四元组来标记通信的双方&#xff08;单播的情况下&#xff09;。我们看看udp作为服务器和客户端的时候的流程。1 在c语言中使用udp1.1 服务器流程&#xff08;伪代码&#xff0…

SVN 清理失败解决方案

SVN有时因各种不明原因导致清理失败&#xff0c;可以采取如下解决办法进行处理&#xff1a; 方法一&#xff1a; 删除根目录下隐藏文件夹“.svn” 然后在根目录文件夹 外面的空白处 检出。比如你项目文件夹名为“D:/source” 则svn检出时,在“source”外面的D盘(D:/) 空白处上右…

将SQL-SERVER逆向工程导入Power-Design中并给表的字段添加注释

PD是一款不错的数据库设计工具&#xff0c;我们在项目开发的时候直接采用正向工程&#xff0c;设计好数据库后逆向将数据库导入PD中&#xff0c;并在PD中添加数据库字段的注释&#xff0c;便于新人的理解和学习&#xff0c;PD支持Oracle、SqlServer等数据库&#xff0c;是很强大…