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

网站权重怎么提高私密浏览器免费版

网站权重怎么提高,私密浏览器免费版,网站设计建站,如何建设一家网站Redis最主要的用途,主要有三个方面:存储数据、缓存、消息队列。 其中,缓存是Redis最常用的场景。Redis使用内存作为硬盘的缓存。把用户集中访问的20%数据放到缓存中去,可以应对80%的请求。 数据库是非常重要的组件,但…

Redis最主要的用途,主要有三个方面:存储数据、缓存、消息队列。

其中,缓存是Redis最常用的场景。Redis使用内存作为硬盘的缓存。把用户集中访问的20%数据放到缓存中去,可以应对80%的请求。

数据库是非常重要的组件,但是mysql的速度又比较慢,所以我们用Redis来作为mysql的缓存。

为什么说关系型数据库性能不高?

  1. 数据库把数据存储在硬盘上,硬盘的IO速度并不快。尤其是随机访问。
  2. 如果查询不能命中索引,就需要进行表的遍历,这就会大大增加硬盘IO次数。
  3. 关系型数据库对于SQL的执行会做一系列的解析,校验,优化工作。
  4. 如果是一些复杂查询,比如联合查询,需要进行笛卡尔积操作,效率更是降低很多。

对于mysql来说,服务器每处理一个请求,都要消耗一些硬件资源,任意一种资源的消耗超过了机器提供的性能上线,机器就很容易出故障。引入缓存就能够把大量查询的操作放到内存中去,又快又不用读写硬盘,资源消耗就少了。

更新策略

定期生成

Redis会把访问的数据,以日志的形式记录下来,比如搜索引擎中的“查询词”就是访问的数据。通过统计这些词出现的频率,取出前20%的词,这些词就可以认为是“热点词”。这些热点词就可以拿出来放到Redis中作为缓存。

实时生成

如果在Redis中查到了,就直接返回;如果Redis中不存在,就从数据库查,把查到的结果同时也写入Redis。

这样经过一段时间的“动态平衡”,redis中的key就逐渐都成为了热点数据了。

但是这种方式会让redis中的内存越占越多,直到达到上限。为了解决这种问题,Redis就引入了“内存淘汰策略”。

Redis 提供了多种内存淘汰策略,可以在配置文件中设置 maxmemory-policy 配置项来指定使用哪种策略。以下是 Redis 支持的内存淘汰策略:

  1. noeviction: 不淘汰任何数据,当内存使用达到限制时,所有写入操作(包括写入命令和有写入副作用的命令,如 DEL 和 EXPIRE)都会返回错误。

  2. allkeys-lru: 从所有键中挑选最近最少使用的键淘汰。

  3. volatile-lru: 从设置了过期时间的键中挑选最近最少使用的键淘汰。

  4. allkeys-random: 从所有键中随机挑选键淘汰。

  5. volatile-random: 从设置了过期时间的键中随机挑选键淘汰。

  6. volatile-ttl: 从设置了过期时间的键中挑选将要过期的键淘汰。

  7. stable: 从所有键中挑选“近似”最少使用的键淘汰。

  8. volatile-lfu: 从设置了过期时间的键中挑选使用频率最低的键淘汰。

  9. allkeys-lfu: 从所有键中挑选使用频率最低的键淘汰

缓存预热

缓存预热(Cache preheating),是针对于缓存实时生成的情况。

Redis服务器首次接入之后,服务器里面是没有数据的。此时所有的请求都会发给mysql,短时间内mysql的压力很大,一段时间之后redis上的数据才会渐渐多起来,mysql的压力才会下去。

缓存预热就是用来解决上述问题的,通过把定期生成和实时生成结合一下,先通过离线的方式,通过一些统计的途径,先把热点数据找到一批,导入到redis中,此时导入这些的这批热点数据就能够帮mysql承担很大的压力了。随着时间的推移就能够使用新的热点数据淘汰掉旧的数据。

缓存穿透

查询的某个key,在redis中没有,mysql中也没有,这个key肯定也不会被更新到redis中。反复查询都没有,但是会给mysql带来很大的压力。

  • 业务设计不合理,比如缺少必要的参数校验环节,导致非法的key被反复查询
  • 开发、运维误操作,把某个key从数据库上删除了
  • 黑客恶意攻击

解决办法:

  • 如果发现某个key在redis和mysql都不存在,仍然把这个值写入到redis中,value设成一个非法的值,如 " "  
  • 引入布隆过滤器,每次查询redis/mysql之前都先判定一下key是否在布隆过滤器上

缓存血崩

在短时间内,redis上大规模的key失效,导致缓存命中率陡然下降,并且mysql的压力迅速上升,甚至直接宕机。

  • redis大量节点宕机
  • 之前同时设置的key,过期时间是相同的

可以考虑给redis设置过期时间的时候,添加一些随机的因子,避免同一时刻过期。

缓存击穿

相当于缓存血崩的特殊情况,针对热点key,突然过期了,导致大量的请求直接访问到数据库上,甚至引起数据库宕机。

解决办法:

  • 基于统计的方式发现热点key,并且设置永不过期
  • 进行必要的服务降级,例如访问数据库的时候使用分布式锁,显示同时请求数据库的并发数

http://www.dinnco.com/news/17888.html

相关文章:

  • 我国中小企业500强正版搜索引擎优化
  • 深圳seo优化外包公司南昌seo网站管理
  • 推广做网站联系方式河北疫情最新情况
  • 做视频网站需要什么证搜索引擎优化关键词
  • 做网站不会P图怎么办焦作网站seo
  • 做和别人一样的网站中国十大网站排名
  • tk后缀网站是什么网站webview播放视频
  • 做网站建设最好学什么营销网站建设创意
  • 怎么用网站源码做网站长沙seo网站
  • 公司网站排名怎么做seo搜索引擎优化教程
  • 香港公司 网站备案b2b网站平台有哪些
  • 做装修有什么好网站可以做网站页面排名优化
  • 关于干外贸的一些好的学习网站seopc流量排行榜企业
  • 餐饮网站建设的毕设报告百度竞价推广是什么
  • 兰考县红庙关东村做网站的国际时事新闻2022最新
  • 软件工程培训机构四川游戏seo整站优化
  • 自助式网站制作百度总部公司地址在哪里
  • 中山快速做网站价格近期舆情热点事件
  • 中山市文联灯饰有限公司网站谁做的推广普通话活动方案
  • 网络设计开发专业怎么做网站优化
  • 广州哪里做网站aso优化的主要内容为
  • 免费制作手机app软件aso搜索排名优化
  • 代理注册公司服务seo服务是什么
  • 如何在对方网站上做外链如何优化搜索关键词
  • 我要学做网站影响seo排名的因素有哪些
  • 佛山制作网站公司网络推广预算方案
  • 新的网站做淘宝客促销方案
  • 承德公司做网站网络营销的类型有哪些
  • 百度申诉网站虎门今日头条新闻
  • 百度怎么做公司的网站重庆森林经典台词图片