14

Java アプリケーションを .NET に移植することを検討しています。アプリケーションは現在 EhCache をかなり頻繁に使用しており、強力な一貫性をサポートしたいと主張しています (http://ehcache.org/documentation/get-started/consistency-options)。

EhCache の代わりに Redis を使用したいのですが、Redis は強力な整合性をサポートしていますか、それとも結果整合性のみをサポートしていますか?

Redis Cluster の話を見たことがありますが、これはまだリリースから少し離れていると思います。

それとも私はこれを間違って見ていますか?Redis インスタンスが完全に別のサーバーにあり、2 つのフロントエンド サーバーにサービスを提供した場合、マスター/スレーブ スタイルの問題を確認する必要が生じる前に、どれくらい大きくなるでしょうか?

4

2 に答える 2

17

Redis の単一インスタンスは一貫性があります。多くのインスタンスにわたって一貫性を保つためのオプションがあります。@antirez (Redis 開発者) は最近ブログ投稿Redis データ モデルと結果整合性を書き、Redis のシャーディングにTwemproxyを推奨しました。これにより、多くのインスタンスで整合性が得られます。

私は EhCache を知らないので、Redis が適切な代替品であるかどうかについてコメントすることはできません。Twemproxy の 1 つの潜在的な問題 (.NET への移植) は、Linux でのみ実行されるように見えることです。

単一の Redis インスタンスはどれくらい大きくなりますか? あなたが持っているRAMの量に依存します。どれくらいでこんなに大きくなるの?データがどのように見えるかによって異なります。

とはいえ、私の経験では、Redis は非常に効率的にデータを保存します。私が持っている 1 つのアプリは、400 MB の RAM に 200,000 ユーザー、20,000 の記事、オブジェクト間のすべての関係、毎週のランキング、統計など (合計 330,000 キー) の情報を保持しています。

Redis は使いやすく、楽しく作業できます。試してみて、ニーズを満たしているかどうかを確認してください。それを使用することに決め、いつかシャーディングする可能性がある場合は、最初からデータをシャーディングしてください。

于 2012-12-14T00:38:34.297 に答える