brand new note

ジャズ屋が技術の話をするところ

オブジェクトキャッシュってなに

webサーバで使われるキャッシュの話をしたく。

memcacheredis が有名

Redis とMemcached | AWS

memcached.org

redis.io

これらはオープンソースのインメモリデータストア(ディスクではなくメモリ内にキャッシュする技術)。有効化することによってディスクベースのDBよりも迅速にデータを読み込むことができる。 redis, memcachedを利用する際にはwordpresプラグイン等ができている場合には有効化のスイッチを押すだけでいいんだけど、もしそうでなく自前で利用したい場合には少々コードを書く必要がある。が、最小限で動くように設計されてはいる。 データを複数ノードに分散することもできる(おそらく別々のメモリに同時にデータをキャッシュしても正しく動作するように設計されているという意味だと思われる)。つまりスケールアウトが可能。

JavaPythonPHP、C、C++C#JavaScript、Node.js、Ruby、Goなどで動かせる。加えてredisは、String に加えて、List、Set、Sorted Set、Hash、Bit Array、HyperLogLog をサポートしている。一方でmemcachedはマルチスレッドであるため、コアを複数使ってより多くの操作を処理できるメリットがある。

その他にも機能や長所短所はあるらしいので詳しくは上のリンクを読んでみてください。

wordpressでの実装について

LS cache pluginの場合は構築しているサーバ上でMemcachedとredisがそれぞれ利用可能なのかがステータスとして表示されている。使える場合にはボタンスイッチで有効化できる。ホスト、ポート、キャッシュされたオブジェクトのデフォルトのTTL(メモリに残存する時間)、ユーザ名、パスワード、redisの場合データベースID、NWレベルでキャッシュされたグループ(いくつかある)のキャッシュの選択、キャッシュしないグループの選択、wp-adminのキャッシュ、キープアライブ機能を使ったmemcachedの高速化などを利用することができる。