在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、定义mysql等一些常见的关系型数据库的数据都存储在磁盘当中,在高并发场景下,业务应用对mysql产生的增删改查的操作会造成巨大的IO开销和查询压力,这无疑对数据库和服务器都是一种巨大的压力,为了解决这类问题,缓存数据的概率应运而生。 2、数据库缓存有什么作用?
3、常见的缓存形式
4、使用缓存后用户请求流程用户请求--> 数据查询--->连接数据库服务器并查询数据-->将数据缓存起来(HTML、 内存、JSON、序列号数据)-->显示给客户端。(有一个对数据处理的开销) 当用户再次请求或者新用户访问-->数据查询-->直接从缓存中获取数据-->显示给客户端。 5、缓存需要考虑的内容
二、使用mysql查询缓存1、作用启用mysql查询缓存可以极大的降低CPU使用率。 2、如何使用query_cache_type //查询缓存类型 //0 : 不使用查询缓存。 //1 : 始终使用查询缓存。 //2 : 按需使用查询缓存。 query_cache_size //为查询缓存预留的内存,默认值为0,即无法使用查询缓存。 //临时设置方法,或者在my.cnf中永久设置 SET GLOBAL query_cache_size = 1024; a、当 query_cache_type = 1 时,亦可关闭查询缓存 SELECT SQL_NO_CACHE * FROM table_name WHRE condition; b、当 query_cahce_type = 2 时,可按需使用查询缓存。 SELECT SQL_CACHE * FROM table_name WHRE condition; 查询缓存可看作是SQL文本和查询结果的映射。 第二次查询的SQL和第一次查询的SQL完全相同,则会使用缓存。只要第二次的sql稍微跟第一次的sql不太一样,比如多了一个空格,多了一个字段,都不会使用缓存。 c、查缓存命中次数SHOW STATUS LIKE 'Qcache_hits'; //查看缓存命中次数 d、清理缓存FLUSH QUERY CACHE; //清理查询缓存中的内存碎片 RESET QUERY CACHE; //从查询缓存中移除所有查询 FLUSH TABLES; //关闭所有打开的表,同时该操作将会清空查询缓存中的内容 三、使用memecache缓存对于大型的站点,如果没有中间缓存层,当流量打入数据库存时,即便有之前的几层为我们挡住一部分流量,但是在大并发的情况下,还是会有大批量请求涌入数据库层,这样对于数据库服务器的压力冲击非常大,响应速度也会下降,因此添加中间缓存层很有必要。 1、memcache的工作原理memcache是一个高性能的分布式的内存对象缓存系统,通过在内存中维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像,视频,文件,以及数据库检索的结果等。简单的说就是将数据调用到内存,然后从内存中读取,从而大大提高读取速度。 2、工作流程先检查客户端的请求数据是否在memcached中,如果有,直接把请求数据返回,不在对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到mencached中。 3、方法get(key); //获取数据 set(key, value, exipre); //设置数据 delete(key); //删除数据
注:memcache拓展和 memcached 拓展是两个不同的 Memcache拓展,memcached拓展方法更丰富一些。 四、使用redis缓存1、Redis 和 memcache 的区别
本文为袋鼠学习中的总结,如有转载请注明出处:https://www.cnblogs.com/chrdai/p/11293680.html |
2022-08-15
2022-08-30
2022-08-17
2022-11-06
2022-08-18
请发表评论