主流的缓存数据库有哪些?
时间:2022-03-07 04:54:02 | 来源:行业动态
时间:2022-03-07 04:54:02 来源:行业动态
缓存是一种通用的设计模式:这种模式一般利用增加存储空间的方式,实现低速部件与高速部件之间的解耦。也就是说,实现了解耦的地方就有存在缓存的可能,既然解耦是计算机系统架构设计中最常用的手段,那么缓存就必将在IT系统和架构中无处不在,如CPU内部缓存,客户端浏览器缓存,Web服务器缓存,应用程序缓存,数据库缓存等。
在各种普遍使用的缓存技术中,基于内存数据库的NoSQL分布式缓存技术在目前的缓存数据库领域得到了广泛的应用。其中最为典型的就是Memcached和Redis这两种高性能分布式内存缓存数据库,一般用来缓存访问的热点数据,减轻物理数据库压力和负载。
Memcached是一个开源、高性能、将数据分布于内存中并使用key-value存储结构的缓存系统。它通过在内存中缓存数据来减少向数据库的频繁访问连接的次数,可以提高动态、数据库驱动之类网站的运行速度。
Memcached基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
和Memcached不同的是,Redis支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
在此基础上,Redis支持各种不同方式的排序。与Memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的使用RDB快照的方式,把更新的数据写入磁盘或者使用类似MySQL的AOF日志方式把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis支持将数据同步到多台从数据库上,这种特性对提高读取性能非常有益。