Voldemort是一款基于Java开发的分布式键-值缓存系统,像JBoss Cache一样,Voldemort同样支持多台服务器之间的缓存同步,以增强系统的可靠性和读取性能。
Voldemort的特点
- 缓存数据可以自动在各个服务器节点之间同步复制。
- 每一个服务器的缓存数据被横向分割,因此是总缓存的一个子集。
- 严格保持缓存的一致性。
- 提供服务器宕机快速恢复方案。
- 可配置的数据存储引擎。
- 可配置的数据序列化方式。
- 每一个数据项都有版本标识,用来保证数据的完整性和可用性。
- 每一个缓存节点都是独立的,因此任何一个节点的故障都不会影响系统的正常运行。
Voldemort键-值原理图
Voldemort逻辑架构图
Voldemort物理架构图
Voldemort的配置方式
集群配置文件:
<cluster> <!-- The name is just to help users identify this cluster from the gui --> <name>mycluster</name> <zone> <zone-id>0</zone-id> <proximity-list>1</proximity-list> <zone> <zone> <zone-id>1</zone-id> <proximity-list>0</proximity-list> <zone> <server> <!-- The node id is a unique, sequential id beginning with 0 that identifies each server in the cluster--> <id>0</id> <host>vldmt1.prod.linkedin.com</host> <http-port>8081</http-port> <socket-port>6666</socket-port> <admin-port>6667</admin-port> <!-- A list of data partitions assigned to this server --> <partitions>0,1,2,3</partitions> <zone-id>0</zone-id> </server> <server> <id>1</id> <host>vldmt2.prod.linkedin.com</host> <http-port>8081</http-port> <socket-port>6666</socket-port> <admin-port>6667</admin-port> <partitions>4,5,6,7</partitions> <zone-id>1</zone-id> </server> </cluster>
数据存储方式配置文件:
<stores> <store> <name>test</name> <replication-factor>2</replication-factor> <preferred-reads>2</preferred-reads> <required-reads>1</required-reads> <preferred-writes>2</preferred-writes> <required-writes>1</required-writes> <persistence>bdb</persistence> <routing>client</routing> <routing-strategy>consistent-routing</routing-strategy> <key-serializer> <type>string</type> <schema-info>utf8</schema-info> </key-serializer> <value-serializer> <type>json</type> <schema-info version="1">[{"id":"int32", "name":"string"}]</schema-info> <compression> <type>gzip<type> </compression> </value-serializer> </store> </stores>
Voldemort的使用示例
value = store.get(key) store.put(key, value) store.delete(key)
总结
Voldemort是分布式缓存系统,因此可以应用在中大型的软件项目中,性能方面也都还不错。
本文链接:http://www.codeceo.com/article/voldemort-java-key-value-catch.html
本文作者: 小峰
相关推荐
Voldemort 是一个分布式键值存储系统,常用于大数据和实时分析场景。它的设计目标是提供高可用性、可扩展性和高性能。在这个配置中,我们关注的是如何将 Voldemort 配置为仅使用内存作为缓存,而不涉及任何持久化...
Voldemort是LinkedIn开源的一款分布式键值存储系统,它被设计用于支持大规模的数据存储和读取操作。RubiS(可能是指Ruby on Rails的变体或一个自定义的框架)框架结合Voldemort,旨在提供一种高效、可靠的NoSQL解决...
Voldemort是一款分布式键值存储系统,它源自亚马逊的 Dynamo 系统,并且作为一个开源项目,为全球的开发者提供了实现高可用、高可扩展性的数据存储解决方案。Voldemort 的设计目标是提供低延迟、高一致性的数据存储...
- **Voldemort**:一个分布式Key-Value存储系统,设计用于处理大规模的数据访问需求,强调数据一致性。 - **Dynamo**:亚马逊开发的分布式Key-Value存储系统,以其高可用性和可扩展性著称,是NoSQL运动的先驱之一。 ...
- **Hmset**: 同时将多个字段-值对设置到哈希表中。 - **Hget**: 获取存储在哈希表中的字段的值。 - **Hmget**: 获取存储在哈希表中的一个或多个字段的值。 - **Hincrby**: 为哈希表中的字段的整数值加上增量。 - **...
Voldemort是一款分布式Key-Value存储系统,主要用于处理大规模数据存储的需求。它设计之初就是为了能够应对高并发读写场景,并且支持容错机制。与Redis相比,Voldemort更侧重于数据分片和复制,适用于对数据一致性和...
Java中,可以使用开源库如Voldemort或Redisson来实现一致性哈希。 6. **缓存失效策略** 分布式Redis环境下,数据的一致性是个挑战。常见的缓存失效策略有:LFU(Least Frequently Used)、LRU(Least Recently ...
- **HMSET**: 同时将多个字段-值对设置到哈希表中。 - **HGET**: 获取哈希表中指定字段的值。 - **HMGET**: 获取所有给定字段的值。 - **HINCRBY**: 为哈希表中的整数值字段递增。 - **HEXISTS**: 查看哈希表中指定...
这类系统是一种非关系型数据库的一种形式,它通过键(Key)来存储和检索值(Value)。这种简单的设计使得Key-Value存储系统在处理大量数据时非常高效。 **1.1.1 Voldemort** Voldemort是一个分布式键值存储系统,它...
- Voldemort是一款分布式Key-Value存储系统,它支持高可用性和可扩展性,适用于大规模的数据存储场景。 - **Dynamo** - Dynamo是Amazon为了解决大规模分布式数据存储而设计的一款系统,它通过一致性哈希算法实现...
- Voldemort是一个分布式键值存储系统,特别适合读多写少的应用场景。 - **1.1.2 Dynamo** - Dynamo是Amazon开发的一种高可用性和高性能的分布式键值存储系统。 - **1.1.3 memcachedb** - memcachedb结合了...
- **定义**:Voldemort是一款分布式键值存储系统,最初由LinkedIn开发。 - **特点**: - 支持复制和分区,能够处理大规模的数据集。 - 提供了高可用性和容错能力。 **1.1.2 Dynamo** - **定义**:Dynamo是Amazon...
- **Voldemort**:一种分布式键值存储系统,被广泛应用于大型网站和移动应用中。 - **Dynamo**:由Amazon开发的一种高度可用且可扩展的键值存储系统,后来启发了众多类似的项目。 - **memcachedb**:结合了memcached...
- **Voldemort**: 分布式的Key-Value存储系统,支持数据分区和副本。 - **Dynamo**: Amazon设计的一种高可用性和高性能的分布式存储系统。 - **memcachedb**: 基于memcached的数据存储系统,支持ACID事务。 - **...
- **Voldemort**: 分布式键值存储系统,最初由LinkedIn开发,用于处理大规模数据读写操作。 - **Dynamo**: 由Amazon设计的一种高度可用、具有容错能力的分布式存储系统,它使用了一种称为“一致性哈希”的算法来分配...
- **特点**: Voldemort 是一个分布式Key-Value存储系统,它被设计用于处理大规模的数据,并且能够提供高可用性和容错性。 - **应用场景**: 适用于需要在多个数据中心之间复制数据的应用场景。 ##### 1.1.2 Dynamo -...
- **Voldemort**: 一个分布式键值存储系统,最初由LinkedIn开发,用于处理大规模数据读写操作。它强调一致性、高可用性和可扩展性。 - **Dynamo**: 由Amazon设计并使用的分布式存储系统,主要特点是在无单点故障的...