Redis集群备忘录
对于Redis集群的备忘录。
这个功能在 Redis 3.0 版本正式添加进来。
之前已经有了作为实验性实现的版本。
公开的信息
(release) Redis 3.0.0 is out. – Google グループ … Redis 3.0.0 リリースアナウンス。
Redis Cluster Specification … 仕様詳細
Redis cluster tutorial … クラスタ機能を試すことができるチュートリアル
简而言之。
使用Redis集群功能可以将Redis实例进行集群化。
与常规的复制配置不同,可以将多个主节点绑定在一起协同工作,以扩展整个集群中所存储的数据量。
特征
-
- Redis の単一キーのコマンドはすべてサポート
-
- Redis の複数キーのコマンドはキーがすべて同じノードにあれば OK
-
- 全ノードがクライアントからのリクエストを受け付ける
自分がデータを持ってない場合、エラーを返して正しいノードにリダイレクトさせる
リクエストを正しいノードにプロキシすることはしない
全ノードがお互いに通信する
Gossip プロトコル
master/slave, フェールオーバー
各masterに1つ以上のslaveをレプリケーションさせることができる
master ダウン時は slave にフェールオーバーする
slave が1台もいなくなった場合、他の master の slave が複数いれば、slave を譲り受けることができる。Replica Migration
リシャーディング機能
ノードを追加してデータを再配置し、スケールアウトすることができる
設計思想
1000ノードオーダーでスケールアウト可能
書き込み安全性、可用性も担保する
与其他分散型KVS的不同
我认为以下是显著特点。
-
- ノードに master/slave の role があること
- リクエストに対するデータを持っていないノードに問い合わせたとき、正しいノードにリダイレクトされる。
在其他分布式键值存储系统中,节点没有角色的区分,它们会内部解析并返回数据的位置。例如Cassandra和Riak。
对于想要更详细了解规格的人来说,请进一步提供信息。
想要一个简略了解的人所需
Salvatore Sanfilippo – How Redis Cluster works, and why – NoSQL matters Barcelona 2014 … 2014年11月に発表された作者によるクラスタ機能解説のスライド(31P)
Redisのクラスタリング — redis 2.0.3 documentation … もうだいぶ古くなってしまった情報ですが、概念はあまり変わってないと思います。参考程度に。
请看下列文章
Redis Cluster の構築と利用(Redis 3.0.0) – ALBERT Engineer Blog
チュートリアルの内容に加えて、基本的な仕様の解説がまとまっていると思います
Redis Cluster のリシャーディングとorphaned masterの話 – CyberAgent エンジニア Advent Calendar 2014 2日目
昨年12月の記事。Redis のバージョンは 3.0.0 RC1 と 3.0.0 beta-3
リシャーディング機能、レプリカ・マイグレーションについて実際に動かしたときの挙動を詳しく解説している
[WIP] Redis Cluster Specification を翻訳してみる
公式仕様を最初の3割ぐらい日本語化してみたもの
尝试做教程的文章
-
- redis clusterの作り方 – Qiita
RedisClusterをちょっとだけ試してみる。 – peropero
2013年12月なので、ちょっと古い。このときは unstable だったことが伺える。
其他相关文章
Redis cluster, no longer vaporware. – Antirez weblog
2014年10月ごろの作者によるブログ投稿記事
2011年3月から始まった Redis Cluster 開発の歴史について
我个人感兴趣的问题
-
- 仕様について
非クラスタのRedisをクラスタ版に置き換える場合、これまでのRedisクライアントは書き替える必要がある?
リダイレクトが発生するので、ありそうな話。
ある master の系統が slave 含めて全滅したときは勝手にリシャーディングしてくれる?
これまで読んだドキュメントの情報だと、クラスタがダウンしそう。
たぶん手動で MIGRATE 操作を行って、クラスタのノード数を減らすことはできる
最后
如果有错误,请告诉我。
可能会不定期更新。