1、redis
- 单机版
- 哨兵:监控,主从复制,故障转移,竞选机制,缺点是不能横向拓展
- 集群:
缓存商品页
实现todo
先从redis取,若没有再从数据库查询,查询出来后就存入redis
redis序列化问题解决
2、本地热点缓存
先从本地热点缓存查,若没有,再去redis查,redis也没有,再去数据库查,查询完之后,分别把缓存存入本地、redis
热点
脏读非常不敏感
生命周期短
内存可控
实现
guava
可控大小
失效时间
LRU失效策略
线程安全的
3、nginx_proxy_cache缓存
虽然离H5最近,但本质上读取的是本地文件,并没有将文件备份在nginx的内存中,所以性能反而不如反向代理,而且H5不应该访问Nginx本地磁盘,因为本地磁盘是有限的,而应该访问远程的NASA磁盘
4、nginx lua
通过lua脚本获取商品静态详情页;如此一来,离H5最近的nginx的压力最大。
share dic共享字典,所有work进程可见,lru淘汰机制
redis:
为什么用Lua
协程机制
5、将静态资源路由到cdn内容分发网络
全页面静态化:在服务端完成html、css,甚至js的load渲染成纯html文件后直接以静态资源的方式部署到cdn上
phantomJs无头浏览器