分类目录归档:数据存储

一致性 Hash 算法

一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。

一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:

1、平衡性(Balance)

继续阅读一致性 Hash 算法

ElasticSearch入门教程(3)—探索ES数据

数据集样本

现在,我们已经了解了ElasticSearch的基础知识,接下来我们将会研究一个更加具有现实意义的数据集。我已经准备了一个虚拟的客户银行账户信息的JSON文档示例。每个文档都具有以下模式:

  1. {
  2. "account_number": 0,
  3. "balance": 16623,
  4. "firstname": "Bradshaw",
  5. "lastname": "Mckenzie",
  6. "age": 29,
  7. "gender": "F",
  8. "address": "244 Columbus Place",
  9. "employer": "Euron",
  10. "email": "bradshawmckenzie@euron.com",
  11. "city": "Hobucken",
  12. "state": "CO"
  13. }

继续阅读ElasticSearch入门教程(3)—探索ES数据

ElasticSearch入门教程(2)—修改ES数据

ElasticSearch能够以接近实时的速度提供数据操作和搜索功能。在默认情况下,从索引/更新/删除数据到出现在搜索结果之间,你可能会感受到有1秒的延迟时间(刷新间隔)。这是与SQL等其他平台的一个重要区别,这些平台在完成事务之后,它们的数据立即可用。

索引/替换文档

先前,我们已经知道如何索引一个单个的文档。我们可以再次回忆这个命令:

  1. PUT /customer/external/1?pretty
  2. {
  3. "name": "John Doe"
  4. }

继续阅读ElasticSearch入门教程(2)—修改ES数据

ElasticSearch入门教程(1)—探索ES集群

REST API

现在,当我们建立和运行ElasticSearch集群和Kibana可视化工具之后,就可以开始学习如何与ElasticSearch进行通信了。幸运的是,ElasticSearch提供了非常全面和强大的REST API,你可以在Kibana的开发工具中使用这些REST API,这样便能和集群进行交互。你可以通过REST API处理以下几个事项:

  • 检查你的集群、节点和索引的健康、状态和统计数据。
  • 管理你的集群、节点、索引数据和元数据。
  • 对你的索引进行CRUD(创建、读取、更新和删除)和搜索操作。
  • 执行高级搜索操作,如分页、排序、筛选、脚本、聚合,以及很多其他操作。

集群健康

继续阅读ElasticSearch入门教程(1)—探索ES集群

ElasticSearch的术语词汇表

analysis(分析)

分析是将全文转换为词语的过程。取决于使用何种分词器,这些短语:FOO BARFoo-Barfoo,bar都可能被分解为词语foobar。索引中存储的实际上是这些词语。对FoO:bAR进行一次全文查询(不是词语查询),也会分解为词语foobar,因此会和索引存储的词语相匹配。正是这一分词过程(在索引时间和搜索时间都有)使得ElasticSearch能够执行全文查询。还可以参考textterm

cluster(集群)

继续阅读ElasticSearch的术语词汇表

缓存写入策略

当系统将数据写入缓存时,缓存还必须在某一时刻将这些数据写入后端存储设备。缓存将数据写入后端存储设备的时机是由缓存写入策略所控制的。

缓存具有两种基本的写入方式:

  • 直写式(Write Through):将数据同步写入缓存和后端存储设备。
  • 回写式(Write Back)(也叫做后写式):首先,将数据写入缓存。然后,缓存会延缓将这些数据写入至后端存储设备,直到缓存块包含的数据即将被新的数据修改/替换。

继续阅读缓存写入策略

如何排查Redis的延迟问题

在你使用Redis的过程中,有时可能会遇到延迟的问题,本文将会详述导致延迟的各项原因。

在本文中,延迟就是客户端请求执行一个命令和客户端收到命令执行结果之间的最大时延。通常,Redis的处理时间几乎可以忽略不计,基本在亚微秒的范围之内。但是,某些情况可能会导致较高的延迟时间。

1. 问题检查清单

继续阅读如何排查Redis的延迟问题

memtier_benchmark:一种用于Redis和Memcached的高吞吐量基准测试工具

memtier_benchmark是Redis Labs推出的一款命令行工具,它能够产生各种各样的流量模式,可以对Memcached和Redis实例进行基准测试。这个工具提供了丰富的自定义选项和报表功能,通过命令行界面就能够轻松地使用。这个工具的一些优点如下所述: