Redis Vs Hazelcast私のアプリの場合:
私の質問は-RedisとHazelcastのどちらを選択してデータの保存とクエリを行うべきですか? -どちらが信頼性が高いですか? -おそらくCassandraがより良いオプションですか?
質問のいずれかに答えることは役立ちます
キャッシングのニーズに応じて、redisからhazelcastに切り替えました。
プロトタイプを使用して、作成に費用がかかるBeanをシリアル化します。 Hazelcastsの標準シリアル化メカニズムは非常に低速です。私たちの環境はGlassfish 3.1です。
Hazelcastは、Java libsのみ、Redisにはすべての言語に1つあります。
本当です。 HazelcastはREST APIとmemcachedプロトコルの実装のみを提供します。
非常に便利なライブラリがあります- Redisson 。それは、分散提供Javaオブジェクトおよびサービス(BitSet
、BloomFilter
、Set
、SortedSet
、Map
、ConcurrentMap
、List
、Queue
、Deque
、BlockingQueue
、BlockingDeque
、ReadWriteLock
、Semaphore
、Lock
、AtomicLong
、CountDownLatch
、Publish / Subscribe
、RemoteService
、ExecutorService
、LiveObjectService
、ScheduledExecutorService
)Redisサーバー上!
クラスタ、センチネル、マスター/スレーブ、およびシングル接続モードをサポートしています。
クラウドで完全に動作し、AWS ElasticacheとAzure Redis Cloudをサポートします
以下は、Redissonのお客様の成功事例です。
2017年の時点で、RedisとHazelcastはどちらも、可用性の高いスケーラブルなキーと値のストレージを提供します。非常に速い応答時間<10ms。
Redisは、soredセット、ハッシュセット、pub\subメカニズムなどの他のデータ構造をサポートするという点でユニークです。また、luaスクリプトを使用して拡張可能です。おそらく、2つの製品の中で最も人気があり、広く使用されています。特にJavaエコシステムの外側。
Hazelcastは、Javaホストプロセスに埋め込むことができるという点でユニークであり、外部データベースに依存せずにステートフルマイクロサービスを構築するのに最適です。キーの有効期限からのコールバックある意味では、全体的なパフォーマンスは低下しますが、いくつかのことは行いますが、Javaを使用している場合は特にそうです。
全体として、これらは外部データのキャッシュ、ステートフルマイクロサービスの通信バックプレーンまたは共有メモリ状態の作成、または場合によってはある程度の耐久性を備えた(少量の非リレーショナル)ビジネスデータの格納など、同様のユースケース向けに設計された同様のソリューションです。
どれが良いかを判断するには、クライアントスレッドの使用に関する問題があります。
これによると ベンチマーク Hazelcastは、より多くのスレッドを使用する場合、Redisよりも優れています。これは不公平な会社のベンチマークかもしれませんが、スレッド化について何かを示しています。
RedisとHazelcastはどちらもメモリベースのデータベースであるため、理論上は同じ速度とパフォーマンスを提供する必要があります。 Hazelcastのドキュメントを見ると、データベースとインターフェイスするためのライブラリが豊富であるため、Redisのサポートが向上します。 Hazelcastは、Java libsのみ、Redisにはすべての言語に1つあります。
回答:
さまざまな比較でRedisの方が高速であることがわかる限り、これを自分でテストする必要があります そのうちの1つはここにあります 、しかし、これらのベンチマークは100%とは言いません
両方とも信頼できるはずですが、Hazelcastを保証することはできません。
多分...
Redisを使用するのは、最も使いやすく、優れたドキュメントがあるためです。