缓存的整体设计思路包括:
1、多层次
分布式缓存宕机,本地缓存还可以使用
2、数据类型
简单数据类型
Value是字符串或整数或二进制,Value的值比较大(大于100K),只进行setter和getter,可采用Memcached。Memcached纯内存缓存,多线程 K-V。
复杂数据类型
Value是hash、set、list、zset,需要存储关系,聚合,计算,可采用Redis。
3、要做集群
分布式缓存集群方案(Redis)
codis
哨兵+主从
RedisCluster
4、缓存的数据结构设计
1、与数据库表一致
数据库表和缓存是一一对应的
缓存的字段会比数据库表少一些
缓存的数据是经常访问的
用户表,商品表
2、与数据库表不一致
需要存储关系,聚合,计算等
比如某个用户的帖子、用户的评论。
以用户评论为例,DB结构如下:
如果要取出UID为1000的用户的评论,原始的表的数据结构