質問: WEBサービスを開発していてキャッシュの導入を考えています。 調べてみたところ、JavaではEhcacheというキャッシュライブラリが 一番メジャーらしいのでこれをPOMに組み込んで実装しキャッシュの 登録や削除ができることを確認できました。 しかし、さらに調べていると、jmemcachedというJava版のmemcachedがあることがわかりました。 こちらはプロジェクトとは別にJarを単独で起動してサーバとして動かし、 プロジェクトからキャッシュサーバにアクセスする形になるのかなと思っています。 みなさんはこの2つのうちどちらを選びますか? それぞれの私が思うメリットは Ehcache: ライブラリなのでプロジェクトに組み込むだけ。javaが動く環境であればどこでも動く。 JVM上の一部をキャッシュ用に使うのでTomcat再起動したら破棄される。 jmemcached: 本番環境でmemcachedが稼働している場合は参照先を変えるだけで対応できる? Tomcatを再起動してもデータが残るがサーバ止めればすべて消える。 ~追記~ 環境の詳細です。 ローカル環境OS:Windows7 本番予定環境:HerokuまたはOpen Shiftの無料枠 言語:Java1.8/Spring3.1/thymeleaf/JdbcTemplete DB:Postgres9.3 memcachedはHerokuでは無料で使えるようです。 Open Shiftについては未確認です。
回答: 簡易的なキャッシュが目的であればGuavaも使いやすいですよ。 分散キャッシュが必要かどうかはサービスの性質やアーキテクチャによりますが、 本格的なものだとhazelcastは評判がいいようです。 キャッシュの目的によってはRedisが適切な場合もあるので検討してみてください。