缓存
为什么会用缓存?
首先在计算机中,因为硬件的关系,从效率上面来说,读取数据,从内存中读取效率远远大于从硬盘中读取数据的效率。因此为了加快访问效率,可以进行一下优化:
1.操作系统磁盘缓存-------> 减小磁盘机械操作
2.数据库缓存 -----------> 减小文件系统I/O
3.应用程序缓存 ----------> 减小数据库的查询
4.web服务器缓存 -------> 减小应用服务器请求
5.客户端浏览器缓存 ------> 减小对网站的访问
在我们开发过程中,java用到的缓存:redis、ehcache、memcache 三大缓存的比较
Ehcache: 简单、快速、轻量。是在虚拟机中开辟出来的缓存。所以,缓存共享比较麻烦,集群分布式不方便,单个应用方便使用这个。
Memcache:分布式缓存系统,相当于大内存的HashTable,就是一个key-value 键值的缓存,支持多线程
Redis: 支持持久化,如果不是使用redis做DB,一般不用开,数据量庞大的时候,重启恢复的时候是一个巨大的工程。
丰富的数据类型、高性能、主从复制、分布式可以使用这个。
redis中常用的词:
1.动态扩容:通过后台配置升级Redis存储空间 2.数据多备,数据存储在一主一备中 3.自动容灾:主机宕机后系统自动检测,并切换到备机上,实现了服务的高可用