Redis 4.0正式リリース。モジュールによる機能やデータの拡張が可能に、新レプリケーションエンジンで運用が改善
オープンソースで開発されているインメモリ型NoSQLデータストアRedisの最新版、「Redis 4.0」が正式にリリースされました。
Redis 4.0はモジュールによる機能拡張の実現、新しいレプリケーションエンジンによる高速なレプリケーション、新しいアルゴリズムの追加によるキャッシュの改善、フラッシュの非同期実行など、多くの機能追加が行われています。
リリースノートには、「内部における変更に関していえば、4.0はおそらくこれまででもっとも劇的なリリースだろう」と、次のように記されています。
Note that 4.0 is probably one of the most extreme releases of Redis ever made in terms of changes inside the internals
新しいレプリケーションエンジン「PSYNC2」
Redis 4.0では新しいレプリケーションエンジン「PSYNC2」が搭載されています。これによってマスターとスレーブ間でのハンドシェイクとデータ変更部分の伝播に関して変更が行われました。
新しいレプリケーションエンジンでは、運用の途中でいずれかのスレーブがマスターに昇格し、ほかのスレーブにとってマスターのインスタンスが変更された場合でも、引き続きデータが変更された部分だけを受け渡すことでレプリケーションを継続できるようになりました。
これまではマスターのインスタンスが変更された場合、そのスレーブはデータ同期を最初からやりなおさなければなりませんでした。これはマスターの変更が事実上スレーブの動きを止めてしまうことになっていたのですが、Redis 4.0ではこれが改善されました。
モジュールによる機能やデータの拡張
Redisがモジュールによって機能拡張できるようになりました。
Modules can extend Redis with new functionalities and data structures, implement types which are exactly like the native types (persisted in the RDB, rewritten in the AOF, ...), and there is experimental support for blocking and threaded slow operations.
モジュールによってRedisに新機能や新しいデータ構造を拡張可能になりました。実装された型はネイティブな型と同じように扱え(Redis DBへの永続化やAppend Only Filesへの追記など)、ブロッキングとスレッド化されたスローオペレーションが実験的にサポートされています。
キャッシュアルゴリズムの追加
Redis 4.0ではキャッシュアルゴリズムとして従来のLRU(Least Recently Used:最近最も使われていないデータを最初に捨てる)に加え、LFU(Least Frequently Used)と呼ばれる、頻繁に使われていないデータを最初に捨てる方式が利用可能になりました。
また、キーを削除するDELコマンド、選択したデータベースのデータを削除するFLUSHDBコマンド、すべてのデータベースのデータを削除するFLUSHALLコマンドが、UNLINKと呼ばれる別スレッドで実行されるようになり、バックグラウンドで動作できるようになっています。
そのほかRedis 4.0には多くの機能追加が行われました。
参考
あわせて読みたい
クラウドの仮想マシンの上に仮想マシンを作れる、Nested Virtualizationに対応した新型VMをMicrosoft Azureがリリース
≪前の記事
「Azure Stack」正式出荷へ。Microsoft Azureと一貫性のあるクラウド機能をオンプレミスで利用可能に。競合他社に対するハイブリッドクラウドの差別化要因になるか