作家
登录

数据库缓存层如何优化

作者: 来源: 2018-03-28 10:52:06 阅读 我要评论

沙龙晃荡 | 3月31日 京东、微博、华为拭魅战专家与你合营商量容器技巧实践!


对于大年夜型站点,如不雅没有中心缓存层,当流量打入数据库底层时,即便有之前的几层为我们盖住一部分流量,然则在大年夜并发的情况下,照样有大年夜量请求涌入数据库层,如许对数据库办事器的压力冲击很大年夜,响应速度也挥萋降,因为添加中心缓存层很有须要。

常见的缓存情势:内存缓存,文件缓存

用户请求→数据萌芽→连接数据库办事器并萌芽数据→将数据缓存起来→(HTML,内存,JSON、序列化数据)→显示

用户再次请求→数据萌芽→直接大年夜缓存中获取数据→显示给客户端

MySQL的萌芽缓存

  • query_cache_type 萌芽缓存类型,有0,1,2三个取值 0则是不应用萌芽缓存,1为始终应用萌芽缓存,2表示按需应用萌芽缓存 为0就没啥好说的了
  • 当query_cache_type 为1的时刻,照样可以封闭掉落萌芽缓存的,就是:SELECT SQL_NO_CACHE * FROM MY_TABLE WHERE condition;
  • 当query_cache_type 为2的时刻,要按须要来开启,开启sql为:SELECT SQL_CACHE * FROM MY_TABLE WHERE condition;
  • query_cache_size 默认情况下query_cache_size为0,表示为萌芽缓存预留的内存为0,则无法应用萌芽缓存
  • 可以直接在my.ini(window底下,linux下是my.cnf)修改值,也可以用敕令 SET GLOBAL query_cache_size = 268435456
  • 萌芽缓存可以算作是SQL文本和萌芽结不雅的映射,当第二次萌芽的sql语句和第一次萌芽的sql语句完全一样的情况下,才会应用缓存 若干好多一个空格都不可呢)
  • show STATUS LIKE  'QCACHE_HITS' ; 可以查看射中次数
  • 当表的构造和数据产生改变的时刻,萌芽缓存中的数据不再有效。
  • 清理缓存 FLUSH QUERY CACHE; 可以清理萌芽缓存内存碎片
  • RESET QUERY CACHE; 大年夜萌芽缓存中移出所有萌芽
  • FLUSH TABLES; 封闭所有打开的表,同时该操作将会清空所有萌芽缓存中的内容。

工作道理 memcache是一个高机能的分布式内存对象缓存体系,经由过程在内存里保护一个同一的巨大年夜hash表,它可以或许用来存储各类格局的数据,包含图像,视频,文件以及数据库检索的结不雅,简单的说就是将数据调用到内存,然后大年夜内存中攫取,大年夜而大年夜大年夜进步攫取速度。

对象流程

先检查客户端的请求数据是否在mamcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如不雅请求的数据不在mamcached中,就去查数据库,把大年夜数据库中获取的数据返回给客户端,同时把数据缓存一份到mamcached中。

办法

  • 获取get(key)
  • 设置set(key,val,expire)
  • 删除delete(key)
  • 通用缓存机制 用萌芽的办法名+参数作为萌芽时的key,value对中的key值

具体可以看php的memcache拓展

或者是mamcached(支撑的办法多一点)

应用redis缓存萌芽数据

与memcache差别

  • 机能相差不大年夜
  • REDIS在2.0版本后增长了本身的VM特点,冲破物理内存的限制,memcache可以修改最大年夜可用内存,采取LRU算法
  • redis,依附客户妒攀来实现分布式读写
  • memcache本身没稀有据冗余机制
  • redis支撑(快照,aof),依附快照进行持久化,aof加强了靠得住性的同时,对机能有影响
  • memcache不支撑持久化,平日做缓存,晋升机能。
  • memcache在并发场景下,用cas包管一致性,redis事务支撑比较弱,只能包管事务中的每个操作持续履行
  • redis支撑多种类的数据类型
  • redis用于数据量较小的高机能操作和运算上
  • memcache用于动态体系中削减数据库负载,晋升机能;合适做缓存,晋升机能。

【编辑推荐】

  1. 游戏开辟经验总结:分布式架构、数据库与过程设计
  2. 企业优化数据存储的6个提示
  3. 还在为云存储掏冤枉钱?那不要错过优化工作负载、节俭开支的┞封10个办法
  4. 分布式数据库正连升三级
  5. 云计算数据优化存储体系设计
【义务编辑:武晓燕 TEL:(010)68476606】

缓存数据是为了让客户端很少甚至不拜访数据库办事器进行数据的萌芽,高并发下,能最大年夜程度的降低对数据库办事器的拜菲揭捉?力

应用Memcache 缓存萌芽数据




  推荐阅读

  比内存快1000倍:中国投资130亿元量产相变内存

沙龙晃荡 | 3月31日 京东、微博、华为拭魅战专家与你合营商量容器技巧实践!今朝量产的PCM存储芯片并没有这么强,Intel的3D XPoint闪存据说就是一种PCM存储芯片,只不过一向没有被证实,而它宣传的特点>>>详细阅读


本文标题:数据库缓存层如何优化

地址:http://www.17bianji.com/lsqh/40976.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)