域名注册成功怎么做网站,个人网站设计的参考文献,赣州快车公众号,北京公司地址推荐1 介绍
在Tair出现之前的很长一段时间里#xff0c;像redis、memcache这些知名NoSql数据库是不支持分布式的#xff0c;在这样的背景下#xff0c;由淘宝网自主开发并在2010.6开源的一个高性能、高扩展、高可靠分布式缓存#xff0c;类似map的key/value结构#xff0c…1 介绍
在Tair出现之前的很长一段时间里像redis、memcache这些知名NoSql数据库是不支持分布式的在这样的背景下由淘宝网自主开发并在2010.6开源的一个高性能、高扩展、高可靠分布式缓存类似map的key/value结构在淘宝、天猫等各个应用中广泛应用。
Tair官网https://www.oschina.net/p/tair
gitee地址https://gitee.com/mirrors/Tair
github wiki地址https://github.com/alibaba/tair/wiki
2 概念
configID一个Tair集群的唯一标识namespace应用的一个内存或者持久化存储区域0到65535之间的一个数字quta配额对应了每个 namespace 储存区的大小限制超过配额后将使用LRU最少使用策略淘汰expireTime数据的过期时间。当超过过期时间之后数据将对应用不可见不同的存储引擎有不同的策略清理掉过期的数据prefix前缀处理保证了拥有相同前缀的key根据哈希算法后分散在同一个dataserver上提高了处理速度。
3 特性
Tair实现了集群部署特性都是一些集群的特性容错、解决单点故障、跨机房管理、多集群管理、支持副本等。Tair的特性有
NamespaceExpirePrefixListzsethashsetLocalCacheFlowControl
抽象存储层内部采用MDB、RDB、LDB三中存储引擎满足了各种存储需求。
MDB是内存型K/V结构底层是memcache 由于是内存型性能最高但是不支持持久化。
RDB底层是redis引擎支持List、Set、Zset、Map、String等多种数据结构性能略低于MDB。
LDB是持久化型引擎底层是google的levelDBK/V结构性能最低但是可靠性最高。
4 应用场景
由于Tair底层的MDB、RDB、LDB三种引擎支持既能作为缓存使用又可以作为持久化存储数据库命令除了put、get、delete以及批量接口外还有一些附加的实用功能比如version支持、原子计数器、item支持可以用于实现分布式锁队列等。
5 Tair与其他缓存对比
TairRedisMemcacheEhcache是否开源开源开源开源开源使用语言服务器端C客户端支持C、JAVA、PHP等ANSI C语言编写 提供多种语言(C/C/JAVA/PHP等)的API服务端C客户端支持c、php、java、python等java集群支持3.0以后支持服务端不支持客户端使用一致性hash算法将数据分布式存储支持默认是异步同步容灾支持3.0以后支持可通过客户端实现支持高可用支持3.0以后支持不支持可通过第三方应用比如magent实现支持动态扩展支持3.0以后支持可通过客户端实现支持本地存储在.data和.index文件效率LDB RDB MDB高高于redis高于memcache持久化LDB、RDB引擎支持支持AOF、默认RDB不支持可通过第三方应用实现支持缓存过期失效策略支持支持支持lru算法支持LRU(默认)FIFOLFU数据结构K/V、list、hash、set、sortedsort等K/V、list、hash、set、sortedsort五种数据结构支持简单的K/V结构支持简单的K/V结构分布式支持3.0以后支持客户端使用一致性hash做分布式支持跨机房管理支持不支持不支持不支持多集群管理支持不支持不支持不支持使用状况只有阿里内部大规模使用普遍使用使用情况较多多用于hibernate的缓存实现缺点文档不全社区不活跃单节点上性能没有redis高不能对key实现模糊查询单条数据不能太大key建议1k以下value不能超过1M建议10k以下3.0以前不支持集群单线程无法充分利用多核服务器CPU事务支持较弱rdb每次都是写全量数据成本高aof追加导致log特别大结构单一数据在内存重启会丢失数据大小受内存限制结构单一、只适用于java体系只能用java编写客户端且使用磁盘做cache时占空间优点采用分布式集群架构具备自动容灾及故障迁移能力对存储层做了抽象底层方便切换不同的存储引擎采用一致性哈希算法将key分散在Q个桶中并将桶放到不同的dataserver上保证数据平衡tair高可用比较强容灾性比redis强支持多种集群结构支持跨机房数据分布非常丰富的数据结构而且都是原子性操作、高速读写、支持事务支持aof、rdb两种持久化机制拥有丰富特性订阅发布 Pub / Sub 功能、Key 过期策略、事务、支持多个 DB、计数、支持集群和数据备份简洁灵活多线程非阻塞io效率高所有支持多种语言api且在并发下用cas保证一致性效率高功能强大版本迭代特别快、缓存策略支持多种可以通过rmi可插入api实现分布式缓存、具备缓存监听、支持多缓存实例、提供hibernate的缓存实现、支持非持久化和持久化缓存数据