asp.net性能优化之使用Redis缓存(入门)
1:使用Redis缓存的优化思路
redis的使用场景很多,仅说下本人所用的一个场景:
1.1对于大量的数据读取,为了缓解数据库的压力将一些不经常变化的而又读取频繁的数据存入redis缓存
大致思路如下:执行一个查询
1.2首先判断缓存中是否存在,如存在直接从Redis缓存中获取。
1.3如果Redis缓存中不存在,实时读取数据库数据,同时写入缓存(并设定缓存失效的时间)。
1.4缺点,如果直接修改了数据库的数据而又没有更新缓存,在缓存失效的时间内将导致读取的Redis缓存是错误的数据。
2:Redis傻瓜式安装
2.1双击执行redis-2.4.6-setup-64-bit.exe程序(下载地址:https://github.com/dmajkic/redis/downloads)
2.2可以将此服务设置为windows系统服务:
2.3测试是否安装成功:
再回到redis文件夹下,找到redis-cli.exe文件,它就是Redis客户端程序。打开,输入:
Set test 123
即在Redis中插入了一条key为test,value为123的数据,继续输入:get test
得到value保存的数据123。
如果想知道Redis中一共保存了多少条数据,则可以使用:keys * 来查询:
3:asp.net使用Redis缓存简单示例
3.1测试Demo的结构
3.2添加引用
3.3将参数写入配置文件
<appSettings><add key="WriteServerList" value="127.0.0.1:6379" /><add key="ReadServerList" value="127.0.0.1:6379" /><add key="MaxWritePoolSize" value="60" /><add key="MaxReadPoolSize" value="60" /><add key="AutoStart" value="true" /><add key="LocalCacheTime" value="1800" /><add key="RecordeLog" value="false" /></appSettings>
3.4读取配置文件参数类
public class RedisConfigInfo{public static string WriteServerList = ConfigurationManager.AppSettings["WriteServerList"];public static string ReadServerList = ConfigurationManager.AppSettings["ReadServerList"];public static int MaxWritePoolSize = Convert.ToInt32(ConfigurationManager.AppSettings["MaxWritePoolSize"]);public static int MaxReadPoolSize = Convert.ToInt32(ConfigurationManager.AppSettings["MaxReadPoolSize"]);public static int LocalCacheTime = Convert.ToInt32(ConfigurationManager.AppSettings["LocalCacheTime"]);public static bool AutoStart = ConfigurationManager.AppSettings["AutoStart"].Equals("true") ? true : false;}
3.5连接Redis,以及其他的一些操作类
3.6测试页面前后台代码
<form id="form1" runat="server"><div><asp:Label runat="server" ID="lbtest"></asp:Label><asp:Button runat="server" ID ="btn1" OnClick="btn1_Click" Text="获取测试数据"/></div></form>
protected void btn1_Click(object sender, EventArgs e){string UserName;//读取数据,如果缓存存在直接从缓存中读取,否则从数据库读取然后写入redisusing (var redisClient = RedisManager.GetClient()){UserName = redisClient.Get<string>("UserInfo_123");if (string.IsNullOrEmpty(UserName)) //初始化缓存{//TODO 从数据库中获取数据,并写入缓存UserName = "张三";redisClient.Set<string>("UserInfo_123", UserName, DateTime.Now.AddSeconds(10));lbtest.Text = "数据库数据:" + "张三";return;}lbtest.Text = "Redis缓存数据:" + UserName;}}
测试结果图
首次访问缓存中数据不存在,获取数据并写入缓存,并设定有效期10秒
10秒内再次访问读取缓存中数据
asp.net性能优化之使用Redis缓存(入门)相关推荐
- 网站性能优化之应用程序缓存-初篇
一. 摘要 首先声明这篇服务器缓存篇是我平时工作中的一些经验心得,对没有用过,或者不知道如何使用服务器缓存的朋友们提供一个简单的认识与实现思路,本文只是抛 砖引玉,还请各位多多提出宝贵意见,希望能够在 ...
- ASP.NET性能优化小结(ASP.NETC#)(转)
原文转自:http://www.jb51.net/article/25937.htm 一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够 ...
- Asp.net性能优化-提高ASP.Net应用程序性能的十大方法
一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的 ...
- asp.net 性能优化细节
asp.net程序性能优化的七个方面 (转) 2007-12-27 04:57 一.数据库操作 转自: http://www.itimes.com.cn/blog/205/look.aspx 1.用完 ...
- 3、查询性能优化技术之多级缓存
5.1本章目标 5.2缓存设计原则概览 缓存设计原则: 用快速存取设备,用内存 将缓存推到离用户最近的地方 脏缓存清理 我们的项目采用多级缓存的架构 第一级 Redis缓存 Redis缓存有集中管理缓 ...
- asp.net性能优化
转载自:http://www.chinaz.com/Program/.NET/103142JH008.html 一.SqlDataRead和Dataset的选择 Sqldataread优点:读取数据非 ...
- 常用的后端性能优化六种方式:缓存化+服务化+异步化等
后端优化的六种方法: 1.硬件升级 硬件问题对性能的影响不容忽视. 举一个例子:一个DB集群经常有慢SQL报警,业务排查下来发现SQL都很简单,该做的索引优化也都做了.后来DBA同学帮忙定位到问题是硬 ...
- ASP.NET性能优化之构建自定义文件缓存
ASP.NET的输出缓存(即静态HTML)在.NET4.0前一直是基于内存的.这意味着如果我们的站点含有大量的缓存,则很容易消耗掉本机内存.现在,借助于.NET4.0中的OutputCacheProv ...
- asp.net oracle优化,[转]ASP.NET性能优化
显示即可. 如果用了服务端控件,将: runat="server"去掉,也会提高效率. 2.禁用服务端控件的状态视图,有些控件不需要维护其状态,可以设置其属性: EnableVie ...
最新文章
- 教你如何更优惠的购买阿里云服务器?
- Linux内部的时钟处理机制全面剖析
- Windows核心编程 第五章 作业(下)
- XML和JSON两种数据交换格式的比较
- Eclipse——Maven项目工程无法编译但可以运行解决方案
- Enjoy Android
- ENSP配置 实例八 三层交换机DHCP配置加VLAN划分实验
- 显示已暂停_中国玉米进口预计增至2200万吨!阿根廷最新宣布:暂停玉米出口...
- bzoj 2832 宅男小c
- 蓝桥杯 ADV-178 算法提高 简单加法
- nginx集群报错“upstream”directive is not allow here 错误 [
- INIT: vesion 2.88 booting
- python2.7没有pip_python2.7无法使用pip怎么办
- 构建之法:第八次心得
- 漫画:Dijkstra 算法的优化
- aix查询服务器内存序列号_AIX查看cpu_内存序列号
- c语言51单片机rrc,MCS-51单片机汇编指令详解
- h3cmsr830series说明书_H3C MSR830路由器设置
- Python爬虫-IP隐藏技术与代理爬取
- 有钱就放余额宝的人,这个习惯恐怕要改一改!
热门文章
- 聚能聊每周精选 第十一期
- Python2读取Excel文件时候文件名称是中文的时候处理
- 如何防止线程死锁java_Java 并发编程:如何防止在线程阻塞与唤醒时死锁
- 桌面版docker操作_10分钟快速掌握Docker必备基础知识
- java 关闭阻塞线程池_如果优雅地关闭ExecutorService提供的java线程池
- 文件格式和扩展名不匹配。文件可能已损坏或不安全。除非您信任其来源,否则请勿打开。是否仍要打开它?
- Spring Boot + Oracle 处理Blob/Clob类型字段实例
- web 富文本编辑器总结
- 自己动手写Docker系列 -- 5.3实现logs命令查看容器日志
- 用php做居中金字塔,[菜鸟学php] php版自定义函数实现金字塔