主流缓存框架
1,EHcache(二级缓存默认就是它 框架默认demo配置二级缓存就是它,但是单机版。)
但是我们是用大型项目分布式集群的环境。
2,MemCache分布式(统治缓存10年 非常之多的企业还在使用 缺点:1.支持只有string
没有数据类型 ) 2.完全基于内存。
(缓存为什么快呢?是因为基于内存,而不用去查询数据库 所以才快。内存特性:
服务器可能会宕机,就会造成服务器数据遗失,丢失。
缓存的数据是来自数据库,用户第一次访问如果缓存中没有,去数据库找,找到后,将结果放入缓存中,
然后返回给用户,用户第二次判断缓存中有数据,直接返回用户。)
从上面的缓存机制可以看出,数据即使丢失,也可以去数据库找。
但丢失也有问题。假设:内存缓存有大数据,600MB数据。如果宕机了。
这600m的数据就丢失了。
重启服务器,用户去访问,判断缓存中没有,就去数据库,给数据库带来一定访问压力。
如果压力不大,还是可以的。 查询完,在往缓存保存一份然后返回用户。
但会造成致命问题:严重问题 雪崩。数据量太大了。 缓存压力大,挂了,造成数据库压力大,也挂了。
MemCache数据只存在内存中,数据不落地。而且恢复只能去数据库找。
3,Redis分布式() 支持类型更加丰富(string,hash(哈希类型),set list(链表),
zset(有序集合)但还是比java要少。2.数据支持内存也支持落地。redis完败MemCache)
支持数据定时备份,备份落地。 redis解决雪崩,从磁盘恢复数据,而不是从数据库中。
自动去磁盘中找数据进行恢复备份。这个可以去磁盘找,恢复快。不用建立数据库连接链接,直接再磁盘通过key-value来查找。
任何语言要想运行速度就是有标准c语言写。而redis正是如此。
支持分布式,也把redsis/memcache称作内存数据库。
它的值是通过key去检索,把值放入value当中。
类似于map结构,也叫no-sql(关系型数据库的补充--->称非关系型数据库。)
性能最高。
最早的项目: LLOOGG日志管理 VMware公司收购了。(我们使用的虚拟机)
push/pop add/remove 操作都是原子性 保证了高并发时的数据安全。
为了保证效率数据都存储在内存中。
redis和MemCache 区别。都是内存数据库
MemCache它支持类型没有redis丰富
MemCache它数据不落地,而redis支持数据定时存储在磁盘上。
MemCache它内存是多线程,redis是单线程。(谁快呢?在小并发时是看不到差别的。 差异在哪里呢?但是数据如果再多,redis就可以使用多实例 )
redis速度:两个指标 写 每一秒5万条(跟ngaix差不多 它也是5/w) 读每一秒2万
1,EHcache(二级缓存默认就是它 框架默认demo配置二级缓存就是它,但是单机版。)
但是我们是用大型项目分布式集群的环境。
2,MemCache分布式(统治缓存10年 非常之多的企业还在使用 缺点:1.支持只有string
没有数据类型 ) 2.完全基于内存。
(缓存为什么快呢?是因为基于内存,而不用去查询数据库 所以才快。内存特性:
服务器可能会宕机,就会造成服务器数据遗失,丢失。
缓存的数据是来自数据库,用户第一次访问如果缓存中没有,去数据库找,找到后,将结果放入缓存中,
然后返回给用户,用户第二次判断缓存中有数据,直接返回用户。)
从上面的缓存机制可以看出,数据即使丢失,也可以去数据库找。
但丢失也有问题。假设:内存缓存有大数据,600MB数据。如果宕机了。
这600m的数据就丢失了。
重启服务器,用户去访问,判断缓存中没有,就去数据库,给数据库带来一定访问压力。
如果压力不大,还是可以的。 查询完,在往缓存保存一份然后返回用户。
但会造成致命问题:严重问题 雪崩。数据量太大了。 缓存压力大,挂了,造成数据库压力大,也挂了。
MemCache数据只存在内存中,数据不落地。而且恢复只能去数据库找。
3,Redis分布式() 支持类型更加丰富(string,hash(哈希类型),set list(链表),
zset(有序集合)但还是比java要少。2.数据支持内存也支持落地。redis完败MemCache)
支持数据定时备份,备份落地。 redis解决雪崩,从磁盘恢复数据,而不是从数据库中。
自动去磁盘中找数据进行恢复备份。这个可以去磁盘找,恢复快。不用建立数据库连接链接,直接再磁盘通过key-value来查找。
任何语言要想运行速度就是有标准c语言写。而redis正是如此。
支持分布式,也把redsis/memcache称作内存数据库。
它的值是通过key去检索,把值放入value当中。
类似于map结构,也叫no-sql(关系型数据库的补充--->称非关系型数据库。)
性能最高。
最早的项目: LLOOGG日志管理 VMware公司收购了。(我们使用的虚拟机)
push/pop add/remove 操作都是原子性 保证了高并发时的数据安全。
为了保证效率数据都存储在内存中。
redis和MemCache 区别。都是内存数据库
MemCache它支持类型没有redis丰富
MemCache它数据不落地,而redis支持数据定时存储在磁盘上。
MemCache它内存是多线程,redis是单线程。(谁快呢?在小并发时是看不到差别的。 差异在哪里呢?但是数据如果再多,redis就可以使用多实例 )
redis速度:两个指标 写 每一秒5万条(跟ngaix差不多 它也是5/w) 读每一秒2万