perl:在共享内存中缓存数据(ram)

时间:2016-08-09 09:07:55

标签: linux performance perl caching shared-memory

我想知道是否可以从不同的脚本/ crones访问perl缓存数据(使用RAM,而不是DISK
我可以使用perl的模块'CHI'和驱动程序 FastMmap 来访问共享缓存数据。
它运行正常,但它在磁盘上执行太多的读/写,这使得它很慢,
使用Ram缓存驱动程序(如 Memory或RawMemory )速度更快,但缓存仅对当前进程及其子进程可见!

所以可以在外部perl脚本可以访问内存“ RAM ”中的缓存数据吗?

在linux上安装CHI和FastMmap

sudo cpan -i CHI 
sudo cpan -i -f Cache::FastMmap

这是一个小例子,执行两次,除非你使用其他驱动程序,否则它会正常工作!

#!/usr/bin/perl
use CHI;
my $cache = CHI->new( driver => 'FastMmap',namespace => 'myApp' ,root_dir   => '/tmp/chifolder/chaches',cache_size => '5M');

if( !defined $cache->get('data') ){
        print "#creating caches  !\n";
        $cache->set( 'data' , "some shared data\n" );
}else{
          print "#caches already exists \n";
}
print  $cache->get('data');

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

谢谢你的帮助@PerlDog,
我认为( RAM磁盘,tmpfs )是我所需要的,
我会做更多的测试,以了解执行时间是否更好,并确保我没有以错误的方式使用它,以避免给服务器带来任何麻烦......
我会告诉你结果