【问题标题】:perl : caching data in shared memory (ram)perl:在共享内存(ram)中缓存数据
【发布时间】: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


【解决方案1】:

感谢@PerlDog 的帮助,
我认为 (RAM disk ,tmpfs) 是我需要的,
我会做更多的测试,以了解执行时间是否更好,并确保我没有以错误的方式使用这种方法,以避免对服务器造成任何问题...
我会告诉你结果的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-06
    • 2011-07-27
    • 1970-01-01
    • 2016-07-12
    • 2016-08-12
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多