ナイーブなオンメモリキャッシュ実装をかいた
https://github.com/tokuhirom/Cache-Memory-Simple/blob/master/lib/Cache/Memory/Simple.pm
Expire されたデータがとれなくなるだけのナイーブなキャッシュ実装をかきました。
わりとみんな手でかいてるとおもうんですが、手でかくとバグりやすいしテストかくのも面倒なので CPAN にあげておくといういつものアレです。Expire がきいてシンプルではやそうなのがなかったんでまあ。
10秒ぐらいhttpdの中にオンメモリキャッシュしときたいなあ、という時などにどうぞ。
使い方は以下のようなかんじです。
use Cache::Memory::Simple; use feature qw/state/; sub get_stuff { my ($class, $key) = @_; state $cache = Cache::Memory::Simple->new(); $cache->get_or_set( $key, sub { Storage->get($key) # slow operation }, 10 # cache in 10 seconds ); }