nginxといくつかの重いmysqlデータベース、およびいくつかのカスタムphpアプリで使用している約16GBのRAMを備えたDebianサーバーがあります。Mysql と PHP の間にメモリ キャッシュを実装したいのですが、データベースが大きすぎてすべてを RAM に格納できません。私が調査する限り、LRU キャッシュの方が優れている可能性があると考えています。これはRedisを除外しますか? Couchbase も検討対象です。
4 に答える
最初に memcached を使用してデータをキャッシュしました。memcached では、異なるバケットの下にある異なるアプリケーションのデータをパーティショニングすることが実際の問題でした。また、1 つのバケットだけからデータをフラッシュする必要があります。データの監視も別の要件です。Couchbase に移行し、memcache スタイルのバケットを使用しています。memcached を使用するよりも、キャッシュに Couchbase memcache スタイルのバケットを使用する方がはるかに柔軟で効率的だと思います。
永続性を備えたインメモリ NoSQL ソリューションの 1 つを使用して、データベースを完全に RAM に移動することを検討したことがありますか? 通常、多くの NoSQL ソリューションは SQL データベースよりもフットプリントが小さいため、元の MySQL データベースよりも少ないストレージで済みます。さらに、サーバー側のロジックが非常に重要な場合は、Tarantool を試してみてください。これには Lua スクリプトが搭載されており、メモリ フットプリントが非常に小さいはずです。私の場合、Tarantool の同じデータは、MySQL の 2 倍少なく占めていました。これは、行ごとおよびフィールドごとのオーバーヘッドが小さく、データの格納にメッセージパックを使用しているためです。