首先明确,memcache是作为高速缓存使用的。那么,到底怎样才能获得高速的响应呢?当然如果是简单处理的话,利用关系型数据库的索引也能获得高速响应。虽然memcached会更快一些,但如果合理地使用索引,关系型数据库就足够快了。
一、memcache缓存的是什么数据又是怎么写入的
首先明确,memcache是作为高速缓存使用的。
那么,到底怎样才能获得高速的响应呢?当然如果是简单处理的话,利用关系型数据库的索引也能获得高速响应。虽然memcached会更快一些,但如果合理地使用索引,关系型数据库就足够快了。
mysql 通常是有一个主键,一行记录里有一个可以标注”身份”的值。mc 是 kv 形式的内存数据库,使用mc的意义就是高速读取,防止对mysql的读取量过大造成各种问题。存mc时候通常把mysql的主键作为key,value可以是一个数据(mysql的一行做一个关联数据),也可以把mysql的一条记录做json_encode,当作一个string进行缓存。
但是如果要对多个表的数据进行计算,情况又会怎样呢?若使用关系型数据库,我们需要从每个表中取出数据然后进行最后的组合处理,或者每次都要使用JOIN等处理。虽然我们可以通过事前用批处理制作数据来解决这个问题,但是这样又会增加需要管理的表,花费我们更多的精力。
延伸阅读:
二、MemCache是什么
MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。MemCache设计理念就是小而强大,它简单的设计促进了快速部署、易于开发并解决面对大规模的数据缓存的许多难题,而所开放的API使得MemCache能用于Java、C/C++/C#、Perl、Python、PHP、Ruby等大部分流行的程序语言。