我在使用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>
我的验证方法是:
<code>if (!xcache_isset("count")) { var_dump("not set"); xcache_set("count", 1); } var_dump(xcache_get("count")); </code>
一直都输出
<code>string(7) "not set" int(1) </code>
当前进程中是可以获取到的缓存, 但新开的进程就是获取不到, 求解
回复内容:
我在使用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>
我的验证方法是:
<code>if (!xcache_isset("count")) { var_dump("not set"); xcache_set("count", 1); } var_dump(xcache_get("count")); </code>
一直都输出
<code>string(7) "not set" int(1) </code>
当前进程中是可以获取到的缓存, 但新开的进程就是获取不到, 求解
找到答案了,我的验证方式是以php脚本的方式运行的, 而脚本在运行完成后就释放所占用的内存了, 所以保存在共享内存中的xcache被释放了, 所以导致每次进程之间是没有共享的. 而如果是以php-fpm 方式处理的, 因为fpm进程一个服务进程, 不会运行结束, 所以xcache 在这种时候是多进程共享缓存的

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

TomakePHPapplicationsfaster,followthesesteps:1)UseOpcodeCachinglikeOPcachetostoreprecompiledscriptbytecode.2)MinimizeDatabaseQueriesbyusingquerycachingandefficientindexing.3)LeveragePHP7 Featuresforbettercodeefficiency.4)ImplementCachingStrategiessuc

ToimprovePHPapplicationspeed,followthesesteps:1)EnableopcodecachingwithAPCutoreducescriptexecutiontime.2)ImplementdatabasequerycachingusingPDOtominimizedatabasehits.3)UseHTTP/2tomultiplexrequestsandreduceconnectionoverhead.4)Limitsessionusagebyclosin

Dependency injection (DI) significantly improves the testability of PHP code by explicitly transitive dependencies. 1) DI decoupling classes and specific implementations make testing and maintenance more flexible. 2) Among the three types, the constructor injects explicit expression dependencies to keep the state consistent. 3) Use DI containers to manage complex dependencies to improve code quality and development efficiency.

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Dreamweaver Mac version
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.
