Redis缓存高性能高并发解决方案

大型视频网站,电子商务系统,为了应对高并发,都有好多的解决方案,比如HTML静态化,图片服务器分离,数据库集群、库表散列,缓存,镜像,负载均衡,CDN加速技术,降级,分层,限流,隔离,冗余,集群,分布式等方式,本文作者主要从redis缓存角度,针对高频访问数据,构建redis与关系数据库(mysql)建立一一映射机制,并持久化这些key,value,代替sql语句查询为key,value查询,达到数据高并发访问.

场景1:
在内容管理系统CMS中,当用户想要订购产品时,需要获取产品列表,产品列表的mysql关系数据库中产品表结构及数据样例如下:

products产品表结构:
在这里插入图片描述
products产品表数据:
在这里插入图片描述

当客户端想获取mysql数据库中产品表的数据,后台sql 语句为:
SELECT id,product_name,product_price FROM products

采用key,value存储,为了建立与mysql映射关系,将结果集封装成json对象{{1,Movie sky,60},{2,Tour,20},{3,Study sky,30}} ,序列化后,持久化存为字符串(String),KEY为products,当客户端请求时,取出后,反序列化输出.
当然也可以将每一行序列化后存储为字符串列表(list)
{1,Movie sky,60}
{2,Tour,20}
{3,Study sky,30}

场景2
用户点播热播剧,热播电影时,将热播内容的视频id,及视频地址或链接仿照上面的方式持久化存储为key,value键值.

场景3
在内容管理系统CMS中,权限系统中不同用户拥有不同权限,将活跃用户的权限相关内容仿照上面的方式存储为key,value键值.

以上3个样例说明了将关系数据库的访问转为key,value访问的具体实现方式,至于其它的线上环境,还需要根据具体的生产环境需要,灵活配置,满足高性能高并发需求.

关于什么场景需要非持久化的key,value如何设置问题,redis集群,redis读写分离不是本节讨论的内容.关于redis与mysql数据库一致性的方式方法及其它的高性能高并发解决方案在后续章节再提供.谢谢!

邮箱:helloworldchina@126.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值