首先我们要明确 Cache到底是在cache什么?
cache是缓存HTML页面?还是缓存数据库查询结果?
在微服务架构中 缓存又需要有哪些独特的地方需要用到?
首先我们先广义的说一下缓存在软件开发中的用处:
缓存能够大大加快我们的应用相应的速度。就是相当于空间换时间。
缓存的数据一般是:频繁访问的数据,储存耗时的结果,减少磁盘的IO。
缓存有这么几个分类:
客户端缓存(静态文件:html, css,图片等等)
代理服务器缓存:常见的是CDN缓存。
服务器缓存:memcache, redis缓存就是指服务器缓存。
数据库缓存。
应用层缓存(和开发人员关系最大–嵌入式缓存【hashmap】或者是分布式缓存【memcache】)
细说服务器缓存:
分为三种:
local cache(local means each server- we have in-memory-cache etc), remote cache(remote for every server, means we have one specific server for cache), distributed cache(have multiple cache server for caching.)
in memory cache:
有两种,一般都是采取成熟的第三方服务:
memcached: 只支持增删改查,只支持string 只支持string.不支持持久化
redis:支持很多类型数据,支持持久化,支持分布式。虽然memcahe性能好 但是redis的功能远远不止缓存。所以很多都用
如何实现缓存?
重点:缓存更新机制和缓存过期策略。
这个会开一个新的文章写。
在微服务系统中应该注意什么?
应该注意缓存应该是分布式的 分布式缓存要注意的地方比较多。所以我们一般选用现成的第三方缓存数据库如redis 或者memcache.