`
毛驴追飞机
  • 浏览: 16785 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

【转载】Java分布式键-值缓存系统Voldemort

    博客分类:
  • java
 
阅读更多

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 配置为仅使用内存作为缓存,而不涉及任何持久化...

    Nosql_Voldormort:No Sql-RubiS框架的Voldemort实现

    Voldemort是LinkedIn开源的一款分布式键值存储系统,它被设计用于支持大规模的数据存储和读取操作。RubiS(可能是指Ruby on Rails的变体或一个自定义的框架)框架结合Voldemort,旨在提供一种高效、可靠的NoSQL解决...

    voldemort,亚马逊发电机的开源克隆。.zip

    Voldemort是一款分布式键值存储系统,它源自亚马逊的 Dynamo 系统,并且作为一个开源项目,为全球的开发者提供了实现高可用、高可扩展性的数据存储解决方案。Voldemort 的设计目标是提供低延迟、高一致性的数据存储...

    Redis实战《红丸出品》

    - **Voldemort**:一个分布式Key-Value存储系统,设计用于处理大规模的数据访问需求,强调数据一致性。 - **Dynamo**:亚马逊开发的分布式Key-Value存储系统,以其高可用性和可扩展性著称,是NoSQL运动的先驱之一。 ...

    架构师系列书籍--Redis实战

    - **Hmset**: 同时将多个字段-值对设置到哈希表中。 - **Hget**: 获取存储在哈希表中的字段的值。 - **Hmget**: 获取存储在哈希表中的一个或多个字段的值。 - **Hincrby**: 为哈希表中的字段的整数值加上增量。 - **...

    Redis实战 中文完成版

    Voldemort是一款分布式Key-Value存储系统,主要用于处理大规模数据存储的需求。它设计之初就是为了能够应对高并发读写场景,并且支持容错机制。与Redis相比,Voldemort更侧重于数据分片和复制,适用于对数据一致性和...

    分布式redis储存方式

    Java中,可以使用开源库如Voldemort或Redisson来实现一致性哈希。 6. **缓存失效策略** 分布式Redis环境下,数据的一致性是个挑战。常见的缓存失效策略有:LFU(Least Frequently Used)、LRU(Least Recently ...

    Redis实战 中文

    - **HMSET**: 同时将多个字段-值对设置到哈希表中。 - **HGET**: 获取哈希表中指定字段的值。 - **HMGET**: 获取所有给定字段的值。 - **HINCRBY**: 为哈希表中的整数值字段递增。 - **HEXISTS**: 查看哈希表中指定...

    Redis 实战

    这类系统是一种非关系型数据库的一种形式,它通过键(Key)来存储和检索值(Value)。这种简单的设计使得Key-Value存储系统在处理大量数据时非常高效。 **1.1.1 Voldemort** Voldemort是一个分布式键值存储系统,它...

    Redis实战《红丸出品》.

    - Voldemort是一款分布式Key-Value存储系统,它支持高可用性和可扩展性,适用于大规模的数据存储场景。 - **Dynamo** - Dynamo是Amazon为了解决大规模分布式数据存储而设计的一款系统,它通过一致性哈希算法实现...

    redis实战相关操作

    - Voldemort是一个分布式键值存储系统,特别适合读多写少的应用场景。 - **1.1.2 Dynamo** - Dynamo是Amazon开发的一种高可用性和高性能的分布式键值存储系统。 - **1.1.3 memcachedb** - memcachedb结合了...

    Redis实战.pdf

    - **定义**:Voldemort是一款分布式键值存储系统,最初由LinkedIn开发。 - **特点**: - 支持复制和分区,能够处理大规模的数据集。 - 提供了高可用性和容错能力。 **1.1.2 Dynamo** - **定义**:Dynamo是Amazon...

    redis实战(高清版)

    - **Voldemort**:一种分布式键值存储系统,被广泛应用于大型网站和移动应用中。 - **Dynamo**:由Amazon开发的一种高度可用且可扩展的键值存储系统,后来启发了众多类似的项目。 - **memcachedb**:结合了memcached...

    Redis实战 中文.pdf

    - **Voldemort**: 分布式的Key-Value存储系统,支持数据分区和副本。 - **Dynamo**: Amazon设计的一种高可用性和高性能的分布式存储系统。 - **memcachedb**: 基于memcached的数据存储系统,支持ACID事务。 - **...

    Redis实战《红丸出品》.pdf

    - **Voldemort**: 分布式键值存储系统,最初由LinkedIn开发,用于处理大规模数据读写操作。 - **Dynamo**: 由Amazon设计的一种高度可用、具有容错能力的分布式存储系统,它使用了一种称为“一致性哈希”的算法来分配...

    redis实战中文 pdf

    - **特点**: Voldemort 是一个分布式Key-Value存储系统,它被设计用于处理大规模的数据,并且能够提供高可用性和容错性。 - **应用场景**: 适用于需要在多个数据中心之间复制数据的应用场景。 ##### 1.1.2 Dynamo -...

    《Redis实战》红丸出品

    - **Voldemort**: 一个分布式键值存储系统,最初由LinkedIn开发,用于处理大规模数据读写操作。它强调一致性、高可用性和可扩展性。 - **Dynamo**: 由Amazon设计并使用的分布式存储系统,主要特点是在无单点故障的...

Global site tag (gtag.js) - Google Analytics