Redis 3.2.0がリリースされました!
予定より時間はかかってしまいましたが、ついにリリースできました。Redis 3.2.0の安定版を公開しました。多くのRedisユーザーにとって役立つ変更が含まれています。これまでにも変更点は何度か紹介してきましたが、主なものは以下のとおりです。
- GEO APIです。緯度・経度で任意のデータをインデックスし、他のRedisデータ構造と同じ手軽さと速度で半径検索ができます。APIドキュメントはこちらをご覧ください: http://redis.io/commands/#geo。初期実装を担当し、今もGEO APIの中核を担うコードを書いてくれたMatt Stancliff氏と、同氏が利用したジオインデックスのコードを提供してくれたARDBの開発者の皆さんに感謝します。
- 新しいBITFIELDコマンドでは、Redisの文字列を、ユーザーが指定したサイズとオフセットを持つ多数の整数からなるビット配列として扱えます。オーバーフロー時の挙動を細かく制御しながら、これらの小さな(あるいは大きな)整数をカウンタとしてインクリメント・デクリメントできます。http://redis.io/commands/bitfield。このクレイジーなアイデアを推し進め、実装のきっかけをくれたYoav Steinberg氏に感謝します。
- Redis Clusterにも多くの改善が加わりました。redis-tribによるリバランス機能や、レプリカ移行の改善などが含まれます。一方で、NAT環境やDockerのポートフォワーディングへの対応はunstableブランチでは実装済みですが、成熟度への懸念から3.2へのバックポートは見送られました。
- Luaスクリプトのレプリケーションも改善されました。副作用を含むスクリプトを記述するための「effects replication」が利用できるようになっています。詳しくはこちらのドキュメントをご覧ください: http://redis.io/commands/EVAL。この機能の追加を働きかけ、設計にも協力してくれたYossi Gottlieb氏に感謝します。
- redis-cliから利用できる、本格的なLuaスクリプトデバッガも用意しました: https://www.youtube.com/watch?v=IMvRfStaoyM。Luaスクリプト初期のころから複雑なスクリプトを手がけてきたItamar Haber氏が、この機能を強く望み、開発中も協力してくれました。
- Oran Agra氏によるSDSとJemallocのサイズクラス設定の変更により、Redisのメモリ効率が向上しました。また、Matt Stancliff氏が貢献した新しいListの内部表現により、大きなリストの表現に必要なメモリが以前のごくわずかで済むようになりました。
- そしてついに、読み取り時のキーの期限切れについて、スレーブとマスターの認識が一致するようになりました。やっとですね :-)
- SPOPがオプションのcount引数を受け付けるようになりました。初期実装を提供してくれたAlon Diamant氏に感謝します。後にパフォーマンスのために私のほうでほぼ書き直しましたが、結果としてかなり高速なものになりました。
- RDB AUXフィールドです。RDBファイル内に、生成したサーバーや生成日時などの情報が含まれるようになりました。近くredis-cliでもこれらのフィールドを解析できるようになる予定です(おそらく3.2.1で)。作業自体は少しで済むのですが、正直このリリースノートを書いていて今思い出したところです。
- RDBの読み込みも高速化されました。
- Sentinelは多数のマスターを監視する規模にも対応できるようになりましたが、安定版というより高度なベータ版とお考えください。内部で多くのコードが変更されているため、本番環境に導入する前に、ぜひご自身の環境で慎重にテストしてください。
- 他にも多くの変更がありますが、このリストだけでも十分長いのでこのあたりで。
このリリースを実現してくれたすべてのコントリビューターの皆さん、温かく励ましてくれるRedisユーザーの皆さん、そして3.2.0に向けた作業の多くを支援してくれたRedis Labsに心から感謝します。
ここ数週間は、次期バージョンでリリース予定の新しい興味深い機能にも取り組んできました。2016年5月10〜11日にサンフランシスコで開催されるRedisConf 2016で発表予定ですので、どうぞご期待ください!
安定性について一言申し上げます。いつも言っていることですが、ソフトウェアの安定性は白黒はっきりつけられるものではありません。ピンクや黄色や緑のようなものです。……冗談です。いつものようにグレーなものです。3.2.0は堅牢に見えますが、まだ出たばかりのものです。段階的に導入して動作を確認し、何か問題があればすぐにご報告ください。一方で、長い間RCとして公開されていたため、新機能をどうしてもすぐに使いたいという勇敢なユーザーの皆さんによって、すでにテストされているのも事実です。
3.2.0の完全な変更履歴はこちらでご覧いただけます: https://raw.githubusercontent.com/antirez/redis/3.2/00-RELEASENOTES
Redis 3.2.0は、http://download.redis.ioからtarballとして入手できるほか、GitHubのantirez/redisリポジトリから3.2.0タグを取得することでも入手できます。
どうぞお楽しみください!
記事をランダムに読む