xcache 跨进程使用的问题

WBOY
Release: 2016-06-06 20:32:12
Original
1136 people have browsed it

我在使用xcache的时候, 跨进程的cache 一直读取不到, 好像并未有缓存到共享内存中
配置如下:

<code>XCache
XCache Version => 3.1.0
xcache.coredump_directory => no value => no value
xcache.disable_on_crash => Off => Off
xcache.experimental => Off => Off
xcache.test => Off => Off
XCache Cacher
XCache Cacher Module => enabled
xcache.admin.enable_auth => On => On
xcache.allocator => bestfit => bestfit
xcache.cacher => On => On
xcache.count => 1 => 1
xcache.gc_interval => 0 => 0
xcache.mmap_path => /tmp/zero => /tmp/zero
xcache.readonly_protection => Off => Off
xcache.shm_scheme => mmap => mmap
xcache.size => 60M => 60M
xcache.slots => 8K => 8K
xcache.stat => On => On
xcache.ttl => 0 => 0
xcache.var_allocator => bestfit => bestfit
xcache.var_count => 1 => 1
xcache.var_gc_interval => 300 => 300
xcache.var_maxttl => 0 => 0
xcache.var_namespace => no value => no value
xcache.var_namespace_mode => 0 => 0
xcache.var_size => 4M => 4M
xcache.var_slots => 8K => 8K
xcache.var_ttl => 0 => 0
XCache Coverager
XCache Coverager Module => enabled
xcache.coveragedump_directory => no value => no value
xcache.coverager => Off => Off
xcache.coverager_autostart => On => On
XCache Optimizer
XCache Optimizer Module => enabled
xcache.optimizer => Off => Off
</code>
Copy after login
Copy after login

我的验证方法是:

<code>if (!xcache_isset("count")) {
    var_dump("not set");
  xcache_set("count", 1);
}
var_dump(xcache_get("count"));
</code>
Copy after login
Copy after login

一直都输出

<code>string(7) "not set"
int(1)
</code>
Copy after login
Copy after login

当前进程中是可以获取到的缓存, 但新开的进程就是获取不到, 求解

回复内容:

我在使用xcache的时候, 跨进程的cache 一直读取不到, 好像并未有缓存到共享内存中
配置如下:

<code>XCache
XCache Version => 3.1.0
xcache.coredump_directory => no value => no value
xcache.disable_on_crash => Off => Off
xcache.experimental => Off => Off
xcache.test => Off => Off
XCache Cacher
XCache Cacher Module => enabled
xcache.admin.enable_auth => On => On
xcache.allocator => bestfit => bestfit
xcache.cacher => On => On
xcache.count => 1 => 1
xcache.gc_interval => 0 => 0
xcache.mmap_path => /tmp/zero => /tmp/zero
xcache.readonly_protection => Off => Off
xcache.shm_scheme => mmap => mmap
xcache.size => 60M => 60M
xcache.slots => 8K => 8K
xcache.stat => On => On
xcache.ttl => 0 => 0
xcache.var_allocator => bestfit => bestfit
xcache.var_count => 1 => 1
xcache.var_gc_interval => 300 => 300
xcache.var_maxttl => 0 => 0
xcache.var_namespace => no value => no value
xcache.var_namespace_mode => 0 => 0
xcache.var_size => 4M => 4M
xcache.var_slots => 8K => 8K
xcache.var_ttl => 0 => 0
XCache Coverager
XCache Coverager Module => enabled
xcache.coveragedump_directory => no value => no value
xcache.coverager => Off => Off
xcache.coverager_autostart => On => On
XCache Optimizer
XCache Optimizer Module => enabled
xcache.optimizer => Off => Off
</code>
Copy after login
Copy after login

我的验证方法是:

<code>if (!xcache_isset("count")) {
    var_dump("not set");
  xcache_set("count", 1);
}
var_dump(xcache_get("count"));
</code>
Copy after login
Copy after login

一直都输出

<code>string(7) "not set"
int(1)
</code>
Copy after login
Copy after login

当前进程中是可以获取到的缓存, 但新开的进程就是获取不到, 求解

找到答案了,我的验证方式是以php脚本的方式运行的, 而脚本在运行完成后就释放所占用的内存了, 所以保存在共享内存中的xcache被释放了, 所以导致每次进程之间是没有共享的. 而如果是以php-fpm 方式处理的, 因为fpm进程一个服务进程, 不会运行结束, 所以xcache 在这种时候是多进程共享缓存的

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!