perl:在共享内存(ram)中缓存数据
perl : caching data in shared memory (ram)
我想知道是否可以从不同的 scripts/crones(使用 RAM,不是磁盘)访问 perl 缓存数据
我能够使用 perl 的模块 'CHI' 和驱动程序 FastMmap 访问共享缓存数据。
它工作正常,但它在磁盘上 太多 reading/writing 使它变慢,
使用 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');
在此先感谢您的帮助。
感谢您的帮助@PerlDog,
我认为 (RAM 磁盘,tmpfs) 是我需要的,
我会做更多的测试来了解执行时间是否更好,并确保我没有以错误的方式使用它,以避免对服务器造成任何麻烦...
我会让你知道结果
我想知道是否可以从不同的 scripts/crones(使用 RAM,不是磁盘)访问 perl 缓存数据
我能够使用 perl 的模块 'CHI' 和驱动程序 FastMmap 访问共享缓存数据。
它工作正常,但它在磁盘上 太多 reading/writing 使它变慢,
使用 Ram 缓存驱动程序(如 Memory 或 RawMemory )速度更快,但缓存仅对当前进程及其子进程可见!
那么是否可以让外部 perl 脚本访问内存“RAM”中的缓存数据?!
用于在 linux
上安装 CHI 和 FastMmapsudo 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');
在此先感谢您的帮助。
感谢您的帮助@PerlDog,
我认为 (RAM 磁盘,tmpfs) 是我需要的,
我会做更多的测试来了解执行时间是否更好,并确保我没有以错误的方式使用它,以避免对服务器造成任何麻烦...
我会让你知道结果