Redis高性能データウェアハウス

元気な一日、habrocheloveki!



Redisとは何ですか?



Redisは、高性能な非リレーショナル分散データウェアハウスです。 データをいつでも削除し、古いレコードを新しいレコードでいっぱいにするMemcachedとは異なり、Redisは情報を永続的に保存するため、 MemcacheDBのように見えます。



Redisは既存のソリューションとどのように違いますか?



Memcached API(MemcacheDB)は配列の保存を許可しますが、これらの配列はシリアル化され、文字列として保存されるため、そのような配列に対するアトミック操作はできません。

Redisでは、アトミックポップ/プッシュ操作を適用できる文字列と配列の両方を保存し、そのような配列から選択を行い、要素を並べ替え、配列の結合と交差を取得できます。



性能



エントリーレベルのLinuxサーバーで1秒あたり110,000のSET要求、1秒あたり81,000のGET要求( テスト )。



Redisの高速性は、データがRAMに保存され、一定の間隔で、または特定の数の未保存のリクエストを超えたときにディスクに保存されるという事実によって保証されます。 Redisを使用すると、最後のいくつかのクエリの結果が失われる可能性があります。これは、Redisへのアクセス速度がRAMへのアクセスに匹敵することを考えると、ほとんどのWebアプリケーションで十分に受け入れられます ただし、冗長性によって損失を回避することができます-Redisは非ブロッキングマスタースレーブレプリケーションをサポートします。



シャーディング



RedisはMemcachedと同様に、多くの物理サーバー上で分散ストレージとして機能できます。 このような機能はクライアントライブラリに実装されており、残念ながら、この機能はこれまでのところRuby APIにのみ実装されていますが、これにより、キーを自分でハッシュし、このキーにアクセスするためのサーバーIDを取得できます。



API



APIは次の言語で使用できます。





PHPのAPIは、Cで記述されたモジュールの形式と、ソケットを介してRedisサーバーと通信するPHP5クラスの形式の両方で利用できるため、モジュールをインストールする必要はありません。

さらに、国内の開発者からのPHP5クラス(信頼できる名前私は真剣に 。)- IMemcacheClientがあります。 (ウォッカのDYPAに感謝)



開発の見通し



開発は非常に活発で、ほぼ毎日コミットが行われています。現在、バージョンRedis 0.900(1.0リリース候補1)が利用可能であり、まもなくバージョン1.0になります。

近い将来、著者はデータ圧縮を含むさまざまな興味深い機能を導入することを約束します。



ライセンスとサポートされるプラットフォーム



Redis-ANSI Cで記述され、ほとんどのPOSIXシステム(Linux、MacOS X)で実行されます。 これは、BSDライセンスに基づく無料のオープンソースソフトウェアです=)



Up: Rediskaは、Redisのキーと値のベースに便利なPHPクライアントですOf.site



All Articles