分布式缓存能够处理大量的动态数据,因此比较适合应用在web 2.0时代中的社交网站等需要由用户生成内容的场景。从本地缓存扩展到分布式缓存后,关注重点从cpu、内存、缓存之间的数据传输速度差异也扩展到了业务系统、数据库、分布式缓存之间的数据传输速度差异。
常用的分布式缓存包括redis和memcached。
1、memcached
memcached是一个高性能的分布式内存对象缓存系统,用于动态web应用以减轻数据库负载。memcached通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
特点:哈希方式存储;全内存操作;简单文本协议进行数据通信;只操作字符型数据;集群由应用进行控制,采用一致性哈希算法。
限制性:数据保存在内存当中的,一旦机器重启,数据会全部丢失;只能操作字符型数据,数据类型贫乏;以root权限运行,而且memcached本身没有任何权限管理和认证功能,安全性不足;能存储的数据长度有限,最大键长250个字符,储存数据不能超过1m。
2、redis
redis是一个开源的使用ansi c语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。
特点:
redis支持的数据类型包括:字符串、string、hash、set、sortedset、list;redis实现持久化的方式:定期将内存快照写入磁盘;写日志;redis支持主从同步。
限制性:单核运行,在存储大数据的时候性能会有降低;不是全内存操作;主从复制是全量复制,对实际的系统运营造成了一定负担。
以上就是常用分布式缓存有哪些?的详细内容。