缓存可以是CPU缓存、内存缓存、硬盘缓存,不同的缓存查询速度也不一样(CPU缓存 优于 内存缓存 优于 硬盘缓存)。
浏览器缓存 浏览器将请求过的页面存储在客户端缓存中,当访问者再次访问这个页面时,浏览器就可以直接从客户端缓存中读取数据,减少了对服务器的访问,加快了网页的加载速度。
根据 Expires 和 Cache-Control 判断是否命中强缓存。
header('Expires: '. gmdate('D, d M Y H:i:s', time() + 3600). ' GMT');
查询时,先取出key,然后进行json_decode解析。
key = userdata用户ID
hashKey = 电话,value = xx
hashKey = 身高,value = xx
//新增
$redis->hSet(key, hashKey, value);
//编辑
//查询
$redis->hGet(key, hashKey); //查询某个属性
三、比如社交项目类似于新浪微博,个人中心的关注列表和粉丝列表,双向关注列表,还有热门微博,还有消息订阅 等等。
四、Memcached 只存储在内存中,而 Redis 既可以存储在内存中,也可以持久化到磁盘上。
个人在工作中没有用到 Memcached ,通过查询资料得到 Memcached 内存分配时优于 Redis。
如何保证,缓存与数据库的数据一致性? 新增数据:先新增到数据库,再新增到缓存。
删除数据:先删除缓存数据,再删除数据库中数据。
强一致性是很难保证的,比如事务一致性,时间点一致性,最终一致性等。