当前位置: 首页 > wzjs >正文

湘潭网站建设 地址磐石网络互联网营销师报名

湘潭网站建设 地址磐石网络,互联网营销师报名,b2b网站怎么做推广,自己可以做开奖网站吗目录 前言 一,Redis架构 1.1 本地缓存 1.2 远程缓存 二,强大的Redis优点 2.1 支持多种数据类型 2.2 内存过期策略 2.3 内存淘汰策略 2.4 持久化 三,Redis是什么 前言 我是一个程序员,维护了一个商品服务,它的背后直连Mysql数据库,假设商品服务对外每秒需要提供1万次…

目录

前言

一,Redis架构

1.1 本地缓存

1.2 远程缓存

二,强大的Redis优点

2.1 支持多种数据类型

2.2 内存过期策略

2.3 内存淘汰策略

2.4 持久化

三,Redis是什么


前言

我是一个程序员,维护了一个商品服务,它的背后直连Mysql数据库,假设商品服务对外每秒需要提供1万次查询,但背后的mysql每秒只能提供每秒5K次的查询,那mysql肯定顶不住,分分钟压垮,这种大流量场景很常见,比如双十一购物,春节抢车票.

那么问题来了?有没有什么办法在Mysql不被压垮的同时,让商品服务支持每秒!万次的查询?当然有!没有什么是加一层中间层不能解决的,如果有,那就再加一层,这次我们要加的中间层就是Redis.

一,Redis架构

我们知道查询内存的速度要比查询磁盘要快,Mysql的数据主要存放在磁盘里,如果能将Mysql的数据放在内存里,完全不走磁盘,那必然能大大提升查询性能

1.1 本地缓存

对于上面的问题,我们很容易想到,在我们商品服务中申请一个内存字典,python中就是dict,java中就是map,其中Key是商品ID,value是商品数据,通过商品ID就能查到商品数据

当我们发生查询时,优先去查询内存字典,没有结果再跑到Mysql的数据库里查询,并将查询到的结果放在我们的数据字典里面,并返回给用户,这样下次就能从内存里面查出来啦,像这种在服务内存放数据的内存,就是所谓的本地缓存,有了本地缓存的加持,真正打到Mysql的查询就会少很多

1.2 远程缓存

为了保证服务高可用,商品服务经常不止一个实例,如果每个实例都重复缓存一份本地内存,那就有些浪费内存条,所以更好的解决方案就是,将这部分字典内存抽出来,单独做一个服务,他就是远程缓存服务.

但问题又来了,多个商品服务,去读写同一分远程缓存,会存在并发问题,那怎么办?很简单,对外我们不管有多少个网络连接,收到读写命令后,都统一塞到一个线程上,再一个线程上对字典进行读写,这样什么并发问题,线程切换开销,完全不存在

这个远程缓存服务足以满足大部分场景,但是他过于简陋,下来我们看如何优化它!!!

二,强大的Redis优点

2.1 支持多种数据类型

如上面所说的远程缓存服务里只有一个字典类型,key和value都是字符串,但是我们平时写代码的时候还会用到其他内存里的数据结构,例如python的list,set,因此在Redis中对value进行了扩展

        1,支持先进先出的队列List

        2,支持去重的Set

        3,支持排序的ZSet

这样缓存服务就更强了

2.2 内存过期策略

当我们的缓存服务支持的数据结构类型变多了之后,塞到内存里的数据就会越来越多,内存又小又贵,那该怎么办呢?

我们可以给缓存里的数据加一个过期时间,一旦数据过期就从内存里删掉,可以很大程度上延缓内存增长速度,那么那些数据该设置多长时间过期?这个就交给用户方去做判断,让用户通过EXPIRED命令来指定那些数据多久过期

2.3 内存淘汰策略

但如果大家都不设置过期时间,内存还是会爆炸!这该如何解决?就是在内存接近上限的时候,根据一些策略删除一些内存,比如可以将最近最少使用的内存删掉,这样不仅解决了内存问题,还能让缓存里面的数据都是热点数据,一箭双雕

2.4 持久化

MySql之所以过得这么舒服,那是因为前面有个缓存服务挡住了大部分流量,一旦缓存服务重启,那内存数据就丢了,这时候流量就会全部打到Mysql身上,这时候Mysql又就原地爆炸了.

因此我们还需要给内存服务加入最大程度的持久化保证,确保服务重启后什么数据都没有,于是可以在缓存服务里面加一个异步子进程,定期将全量内存数据持久化到磁盘文件里,当重启服务的时候就会加载之前的内存数据

三,Redis是什么

上面我们说了这么多,再回头来看看Redis到底是什么?我们从开始的一个简陋的缓存服务慢慢就变成了一个高性能,高可用,支持多种数据类型,支持各种缓存淘汰策略,并提供一定持久化能力的超强缓存服务,这就是我们常说的Redis

http://www.dtcms.com/wzjs/467972.html

相关文章:

  • 网站运营与建设免费发广告的平台
  • zen cart 网站google plusseo优化平台
  • 优质的天津网站建设站长工具seo综合查询推广
  • 深圳网站建设响应式网站一份完整的营销策划书
  • 深圳市网站制作公司网络广告网站
  • 建设工程网站168北京百度推广seo
  • 做外国网站自媒体爱战网关键词
  • 专门做湘菜的网站贵阳网络推广外包
  • 网站一年多少费用抖音视频seo霸屏
  • 网页翻页电子书制作模板电脑优化是什么意思
  • 做网站建站点网页制作流程
  • 江油市规划和建设局网站点石关键词排名优化软件
  • 龙岗网站建设公司官网太原做网站哪家好
  • 菜市场做建筑设计图库的网站设计百度网址大全手机版
  • 栏目手机版 企业网站百度分公司
  • 直销模式最好的公司最新seo自动优化软件
  • 郑州优化网站公司微商引流的最快方法是什么
  • 小白如何做网站广东seo排名
  • b站推广网站400seo推广公司哪家好
  • 泰安网站建设优化技术汕头网站排名
  • 一级av做爰片不卡免费网站百度网站流量统计
  • 为外国企业做中文网站建设seo学途论坛网
  • 网页制作工具下载惠州seo计费管理
  • 建设部机关服务中心网站seo站长工具查询系统
  • 网站制作公司合肥广州网站优化费用
  • 外贸seo网站搭建贵州seo技术查询
  • 苏州网站优化企业百度推广代理公司
  • 推荐 南昌网站建设企业官网网站
  • 上海集团网站建设咨询慧聪网
  • Javascript做网站东莞网站推广技巧