【发布时间】:2016-12-15 05:57:05
【问题描述】:
我想知道是否可以从不同的脚本/crones 访问 perl 缓存数据(使用 RAM,不是磁盘)
我能够使用带有驱动程序 FastMmap 的 perl 模块“CHI”访问共享缓存数据。
它工作正常,但它在磁盘上读/写太多,这使得它变慢了,
使用 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');
提前感谢您的帮助。
【问题讨论】:
-
是的,它被称为“数据库”。
-
我正在使用缓存来减少我的数据库过载。
-
将您的
/tmp/chifolder/chaches放在 RAM 磁盘 (tmpfs) 上会有帮助吗? -
这看起来是个好主意,但我从未使用过'tmpfs'。我将尝试找出如何使用 RAM 磁盘中的文件夹并尝试一下
-
@zakaria35 对于一个简单的尝试,您可以使用
sudo mount -t tmpfs none /tmp/chifolder/chaches这可以保留最大值。 50% 的 RAM 用于 ramdisk。但是:先到先得,即如果您只有 20% 的空闲 RAM,那么 ramdisk 将只能从这 20% 中受益。
标签: linux performance perl caching shared-memory