Redis的应用场景
最近做了个小项目是WebForm 做着做着发现前台的首页读取速度很慢,并且多个用户同时访问我的Sqlserver承受不住!之后就想到了Redis
代码如下:
/// <summary> /// 缓冲技术 突破数据库速度 /// </summary> protected void Page_Load(object sender, EventArgs e) { //Radis缓冲处理 var ser = new ObjectSerializer(); RedisClient redis = new RedisClient("127.0.0.1", 6379); if (ser.Deserialize(redis.Get<byte[]>("Banner")) == null)//证明过期 { redis.Set<byte[]>("ShowNewPhone", ser.Serialize(GoodsManager.GetNewPhone()), DateTime.Now.AddMinutes(1)); rpt_ShowNewPhone.DataSource = ser.Deserialize(redis.Get<byte[]>("ShowNewPhone")) as List<Goods>; rpt_ShowNewPhone.DataBind(); redis.Set<byte[]>("T1", ser.Serialize(AdvertManager.GetList("1")), DateTime.Now.AddMinutes(1)); advert_01.DataSource = ser.Deserialize(redis.Get<byte[]>("T1")) as List<Advert>; advert_01.DataBind(); redis.Set<byte[]>("T2", ser.Serialize(AdvertManager.GetList("2")), DateTime.Now.AddMinutes(1)); friend.DataSource = ser.Deserialize(redis.Get<byte[]>("T2")) as List<Advert>; friend.DataBind(); redis.Set<byte[]>("video", ser.Serialize(VideoTalManager.GetList()), DateTime.Now.AddMinutes(1)); dongtai.DataSource = ser.Deserialize(redis.Get<byte[]>("video")) as List<VideoTal>; dongtai.DataBind(); redis.Set<byte[]>("BannerList", ser.Serialize(BannerManager.GetList()), DateTime.Now.AddMinutes(1)); banner_rpt.DataSource = ser.Deserialize(redis.Get<byte[]>("BannerList")) as List<Banner>; banner_rpt.DataBind(); } else { rpt_ShowNewPhone.DataSource = ser.Deserialize(redis.Get<byte[]>("ShowNewPhone")) as List<Goods>; rpt_ShowNewPhone.DataBind(); advert_01.DataSource = ser.Deserialize(redis.Get<byte[]>("T1")) as List<Advert>; advert_01.DataBind(); friend.DataSource = ser.Deserialize(redis.Get<byte[]>("T2")) as List<Advert>; friend.DataBind(); dongtai.DataSource = ser.Deserialize(redis.Get<byte[]>("video")) as List<VideoTal>; dongtai.DataBind(); banner_rpt.DataSource = ser.Deserialize(redis.Get<byte[]>("BannerList")) as List<Banner>; banner_rpt.DataBind(); }
解读:
- 1.设置过期时间是为了防止项目更新无效,如果不在设置过期时间,你将要在后台操作前台数据的时候更新redis数据.
- 2.每过60秒(或者更多)就会有一个用户去DB的数据搬到Redis中给其他用户使用(每N秒有一个小白鼠)
Redis的优点:
- 异常快 - Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执行81000次的读取/获取(GET)操作。
- 支持丰富的数据类型 - Redis支持开发人员常用的大多数数据类型,例如列表,集合,排序集和散列等等。这使得Redis很容易被用来解决各种问题,因为我们知道哪些问题可以更好使用地哪些数据类型来处理解决。
- 操作具有原子性 - 所有Redis操作都是原子操作,这确保如果两个客户端并发访问,Redis服务器能接收更新的值。
- 多实用工具 - Redis是一个多实用工具,可用于多种用例,如:缓存,消息队列(Redis本地支持发布/订阅),应用程序中的任何短期数据,例如,web应用程序中的会话,网页命中计数等。
分类:
Redis/Cache
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异