Redis CacheÊÇWordPressÕ¾µãÖÐÓÐÃûµÄ¶ÔÏ󻺴æ²å¼þ£¬Ò»°ãÎÒÃÇ¿ªÆôÕ¾µãµÄ¶ÔÏ󻺴æºó£¬È»ºóÔÙµ½WordPressºǫ́½øÐÐRedis Cache²å¼þ°²×°¡£¼òµ¥Ò×Óã¬Ä¿Ç°ÔÚWordPressÕ¾µãÖа²×°Ê¹ÓõÄÁ¿·Ç³£´ó£¬¶øRedis Cache²å¼þÓÖ·ÖΪÃâ·Ñ°æ¼°ProÊշѰ棬±¾´Î°áÖ÷Ìâ·ÖÏíµÄÊÇRedis Cache Pro 1.16.1רҵ°æ²å¼þÏÂÔØ£¬Ãâ·Ñ·ÖÏí¸ø´ó¼Ò¡£±¾´Î¸üÐÂÖ÷ÒªÓÐÐÞÕýÁ˽¡¿µ¼ì²éÌõ¼þ¼°ÆäËûÎÊÌâµÄÐÞ¸´¼°¸Ä½øÓÅ»¯¡£
Redis Cache²å¼þÓÖ·ÖΪÃâ·Ñ°æ¼°ProÊշѰ棬±¾´Î°áÖ÷Ìâ·ÖÏíµÄÊÇRedis Cache Pro 1.16.1רҵ°æ£¬Ãâ·Ñ·ÖÏí¸ø´ó¼Ò¡£
×¢Ò⣺°²×°Ê¹ÓúóÓÐʱºò»áÌáʾûÓÐÊÚȨÂ룬µ«ÊÇÖ»ÊDz»ÄÜÔÚÏ߸üУ¬²»Ó°ÏìÕý³£Ê¹Óá£ÒòΪĬÈÏûÓÐÓïÑÔ°üÎÞ·¨ºº»¯£¬Òò´Ë°æ±¾¾ÍÊÇÓ¢Îİ棬µ«ÊÇÎÞÈκÎÉèÖýçÃæ£¬¼òµ¥ÒײÙ×÷Ò²¾Íû̫´óÓ°Ïì¡£
ÈçºÎ°²Redis Cache Pro×°²å¼þ²¢Ê¹Óã¿
1¡¢ÔÚÕ¾µã¸ùĿ¼ÏµÄÎļþwp-config.phpÀï¼ÓÈëÈçÏ´úÂë
define(‘WP_REDIS_CONFIG’, [
‘host’ => ‘localhost’,
‘port’ => 6379,
‘database’ => 0, // change for each site
‘maxttl’ => 3600 * 24 * 7, // 7 days
‘timeout’ => 1.0,
‘read_timeout’ => 1.0,
‘split_alloptions’ => true,
‘debug’ => false,
]);
define(‘WP_REDIS_DISABLED’, false);
2¡¢
´Ó/wp-content/plugins/redis-cache-pro/stubs/¸´ÖÆÎļþobject-cache.phpµ½/wp-content/¡£
½øÈëWordPressÒDZí°å£¬Ë¢ÐÂÒ³Ãæ²é¿´
×¢Ò⣺±¾²å¼þ½öΪ°áÖ÷ÌâÃâ·ÑÌṩ£¬²¢ÒÑÇ××Ô²âÊÔ£¬Èç¹û²»»áÉèÖûòÕßÁ¬½Ó´íÎóµÈµÈ£¬¿É¸¶·ÑÓɱ¾Õ¾°ïæÉèÖûòÕß½â´ð£¬ÇëÁ½⡣
Redis Cache Pro²å¼þÑÝʾ½ØÍ¼
Redis Cache Pro ²å¼þ¸üÐÂÈÕÖ¾ÈçÏ£º
v1.16.1 – 2022-08-29
ÐÞ¸´
ÐÞÕýÁ˽¡¿µ¼ì²éÌõ¼þ
v1.16.0 – 2022-08-22
Ìí¼Ó
Ìí¼ÓWordPress 6.1 wp_cache_flush_group()Ö§³Ö
Ôö¼ÓÁ˲å¼þÑ¡ÏîµÄREST API¶Ëµã
Ôö¼ÓÁËobjectcache_omit_analytics_footnote¹ýÂËÆ÷
Ôö¼ÓÁËÁ¬½ÓÖØÊÔ
Ôö¼ÓÁ˶ÔOBJECTCACHE_CONFIG»·¾³±äÁ¿µÄÖ§³Ö
Ôö¼ÓÁ˶ÔWPÓû§¹ÜÀíÆ÷µÄÕûºÏ
Ôö¼ÓÁËwithTimeout()ºÍwithoutTimeout()Á¬½Ó°ïÖúÆ÷
¸Ä±ä
ͨ¹ýPHPStan L7
?? ʹµÃ²å¼þ¡¢ÅäÖúÍÊÂÎñÀà³ÉΪ×îÖÕÀà
?? Ìí¼ÓÁËMeasuredObjectCacheInterface
?? ΪConnectionInterfaceÌí¼ÓÁËcommand(), memoize(), ioWait() ºÍ withoutMutations()
½«Ä¬ÈÏ£¨¶Á£©³¬Ê±Ê±¼ä´Ó5.0s¼õÉÙµ½2.5s
½«Ä¬ÈϵÄÖØÊÔ¼ä¸ô´Ó100ms¼õÉÙµ½25ms
ʹÓÃretry_intervalÅäÖÃÑ¡Ïî×÷Ϊbackoff»ù´¡
ʹÓÃread_timeoutÅäÖÃÑ¡Ïî×÷ΪbackoffÉÏÏÞ
ʹÓÃÑ¡ÏîAPI¶ËµãÀ´±£´æ¸÷ÖÖÉèÖÃ
ΪÎÞЧµÄ»º´æÃÜÔ¿ÀàÐ͵ÄÈÕÖ¾ÐÅÏ¢Ìí¼Ó»ØËݼǼ
´óÐÞÁËflush_runtime()ºÍflushRuntime()·½·¨
ÔÚObjectCache°ïÖúÆ÷ÖÐĬÈÏΪĬÈÏ×é
½ÓÊÜÈκοɵ÷ÓõļǼÆ÷ÅäÖÃÑ¡Ïî
ÔÚPhpRedisConnection::withoutMutations()Öв¶×½»Øµ÷Òì³£
¸Ä½øÁ˶ÔÖмÌÁ¬½ÓµÄÖØÊÔ/»ØÍËÖ§³Ö
Ö§³ÖWordPress 6.0 *_multiple()·½·¨µÄRelayʼþ¼àÌýÆ÷
½«Ä¬ÈϺóÍËÖØÃüÃûΪÖÇÄÜ
Ö»ÔÚÐèҪʱ¼ÆË㻺´æ´óС£¬ÕâÑù×ö¶ÔÄÚ´æ¸üÓѺÃ
ÐÞÕý
ÐÞÕýÁË´¦ÀíÎÞЧµÄ»º´æ¼ü
ÐÞÕýÁ˵±must-use±»·ûºÅÁ´½Óµ½ÆäËûµØ·½Ê±µÄÉèÖÃÑùʽ¼ÓÔØ
ÐÞÕýÁËÒDZí°åС²¿¼þµÄ¶¨Î»
·Å¿íÁËURLÑéÖ¤
±ÜÃâÁ˰´Ä£Ê½É¾³ýʱµÄ³¬Ê±
±ÜÃâÁ˺±¼ûµÄÃÜÔ¿±êʶ·ûµÄÅöײ
·ÀÖ¹º±¼ûµÄ·ÖÎö»Ö¸´Ê§°Ü
ÐÞÕýÁËPhpRedisReplicatedConnectionµÄmulti()ºÍflushdb()µ÷ÓÃÂß¼
ÔÚConfiguration\Concerns\SentinelÌØÖÊÖе¼ÈëȱʧµÄÒì³£
ÐÞÕýÁ˸üÐÂ::setUpPluginInfo()·¢Éú´íÎóʱµÄ·µ»ØÖµ
ÔÚPhpRedisClusterConnection::scanNode()ÖÐɾ³ý»ìºÏÀàÐÍ
·ÀÖ¹¼ÓÔØ²å¼þ³¬¹ýÒ»´Î
²»Òª½Ù³ÖÒDZíÅÌÉϵ͝×÷²ÎÊý
v1.15.2 – 2022-06-30
Ìí¼Ó
Ôö¼ÓÁËSQL²éѯָ±ê
ÐÞ¸´
ÔËÐÐRelayÊÂÎñʱ²»ÐèÒªext-redisÁË
Ö»ÔÚ±ØÐëʹÓõÄÉèÖÃÖÐÒþ²ØÉý¼¶Í¨Öª
µ÷ÕûС¹¤¾ßµÄÑÓ³Ù¾¯¸æÑÕÉ«
ÐÞÕýget_num_queries()²»¿ÉÓõĺ±¼û´íÎó
v1.15.1 – 2022-06-19
Ìí¼Ó
ÔÚÕï¶Ï³ÌÐòÖÐÏÔʾ»ùÃû
ÒѸü¸Ä
ÔÚ·ÖÎö½Å×¢ÖÐÔö¼ÓRedisºÍRelayÑù±¾
ÔÚPhpRedisConnection::executeMulti()ÖÐËõСÁ˶ÔTransactionµÄÀàÐÍÌáʾ¡£
ÐÞ¸´
Í×ÉÆ´¦Àí PHP 7.0/7.1 »·¾³
µ±Ê¹Óò»ºÃµÄ²å¼þlugʱÏÔʾ´íÎó
δÁ¬½Óʱ²»ÏÔʾ·ÖÎö½á¹û
±ÜÃâÔÚ²éѯ¼àÊÓÆ÷ÖÐδÁ¬½Óʱ³öÏÖº±¼ûµÄ䶨ÒåË÷Òý
ÔÚObjectCache::error()Öв¶×½ËùÓпÉÅ׳öµÄ´íÎ󣬶ø²»½ö½öÊÇÒì³£¡£
v1.15.0 – 2022-06-10
¸Ã°æ±¾ÒýÈëÁËÒ»¸öÉèÖÃÒ³Ãæ£¬ÓÃÓÚ¹Ø×¢»º´æ·ÖÎö£¬¹ÜÀí²å¼þ¸üкÍʹÓÃÕï¶Ï¹¤¾ß¡£
Ìí¼Ó
ÔÚSettings > Object CacheÏÂÌí¼ÓÁË·ÖÎöͼ±í
ÔÚÉèÖà > Object Cache -> ¸üÐÂÏÂÔö¼ÓÁ˲å¼þ¸üÐÂ
ÔÚÉèÖà > ¶ÔÏ󻺴æ -> ¹¤¾ßÏÂÔö¼ÓÁ˸÷ÖÖ¹¤¾ß
Ìí¼ÓÁËWordPress 6.0µÄwp_cache_*_multiple()ºÍwp_cache_flush_runtime()º¯Êý¡£
Ôö¼ÓÁ˶ÔRedis SentinelµÄÖ§³Ö
½Ù³ÖËùÓÐÊÂÎñÒÔÔÊÐíÃüÁî¼Ç¼
ΪËùÓÐÖØ¶¨ÏòÌí¼ÓÁËX-Redirect-ByµÄ¹¦ÄÜ
Ôö¼ÓÁË·ÖÎö¡¢ÉÚ±ø¡¢·þÎñºÍ relay.invalidations ÅäÖÃÑ¡Ïî
Ôö¼ÓÁË·ÖÎö¡¢»º´æ×éºÍÑÓ³ÙµÄREST API¶Ëµã
ΪPhpRedisReplicatedConnectionÌí¼ÓÁËmaster()ºÍreplicas()¡£
ÔÚPhpRedisClusterConnectionÖÐÌí¼ÓÁËnodes()¡£
Ôö¼ÓÁ˸üÐÂÅäÖÃÑ¡Ïî
Ôö¼ÓÁËÄ£·ÂREST API¶ËµãµÄwp redis analytics CLIÃüÁî
¸ü¸Ä
?? ÐèÒªPHP7.2ÒÔÉϰ汾
??񻂗Relay v0.4.0
?? ΪObjectCacheInterfaceÌí¼ÓÁËflush_runtime()
?? ΪObjectCacheInterfaceÌí¼ÓÁËadd_multiple(), set_multiple()ºÍdelete_multiple()
?? Ìí¼ÓÁËconnectToSentinels()ºÍconnectToReplicatedServers() ConnectionInterface¡£
ÔÚ¼¯ÈºÁ¬½ÓÖÐʹÓÃ×éÃû×÷Ϊ¹þÏ£²Û
ÆúÓÃflushMemory()£¬¸ÄÓÃflushRuntime()ÒÔ±£Ö¤ÃüÃûµÄÒ»ÖÂÐÔ
¼¤»îºóÖØ¶¨Ïòµ½ÉèÖÃ
ÔÊÐíÔÚ»º´æË¢Ðºó»Ö¸´·ÖÎö½á¹û
Ö»½ÓÊÜÕûÊýºÍ·Ç¿ÕµÄ×Ö·û´®×÷Ϊ¼üÃû
ÔÚ¼¸¸öObjectCacheInterface·½·¨ÖÐ·ÅÆúÁË$keyµÄ×Ö·û´®ÀàÐÍ
Òþ²Øwp redisÐÅÏ¢ÖÐÎóµ¼ÐÔµÄRelayͳ¼ÆÊý¾Ý
Òѻָ´¡£Ê¹ÓÃRelayʱ£¬½«ËùÓÐÑ¡Ïî´æ´¢Îªµ¥¸ö¼ü
Ìá¸ßÁËBatcacheµÄ¼æÈÝÐÔ
ʹÓÃRedis¼¯ÈºÊ±½ûÓÃflush_networkÑ¡Ïî
½«PhpRedis v5.3.4¼°ÒÔÉϰ汾±ê¼ÇΪ¹ýÆÚ¡£
Ëæ´¦²¶×½¿ÉÅ×Î¶ø²»ÊÇÒì³£
ʹÓõ¥Ò»µÄwindow.objectcache¶ÔÏó
ÔÚ²éѯ¼àÊÓÆ÷ÖÐÍ»³öÏÔʾ°º¹óµÄÃüÁî
ÔÚQuery MonitorÖжԶªÊ§µÄÃüÁîÈÕÖ¾Ìṩ¸ü¶à°ïÖú
ÐÞ¸´
ÐÞÕýÁËÆôÓÃdrop-inʱµÄº±¼û´íÎó
µ±WP_REDIS_CONFIGδ±»ÉèÖÃʱ£¬×èÖ¹wp redisÆôÓÃ
ÐÞÕýÁËÔÚûÓÐÓÐЧ¿Í»§¶ËÀ©Õ¹´æÔÚµÄÇé¿öÏÂʵÀý»¯ÅäÖõÄÎÊÌâ
±ÜÃâÁËCommandsCollectorÔÚûÓн¨Á¢Á¬½ÓʱµÄÖÂÃü´íÎó
ÔÚ²éѯ¼àÊÓÆ÷ÖÐÏÔʾrawCommand()µ÷ÓÃΪʵ¼ÊÃüÁî
ÆäËû¸÷ÖÖ´íÎóÐÞ¸´¡¢Ð¡µÄ²¹³äºÍ¸Ä½ø
ÐÞÕýÁËÔÚwp redis cliÖÐÑ¡Ôñ·ÇÁãÊý¾Ý¿âµÄÎÊÌâ
ÐÞÕýÁËwp redis watch digestµÄº±¼ûäÖȾÎÊÌâ
ÐÞÕýÁËIDNµÄ¹æ·¶»¯ÎÊÌâ
²»ÒªÇóÎļþϵͳдÈëȨÏÞÀ´¼ì²édrop-inµÄ´æÔÚ
ÐÞÕýÁËͨ¹ýwp redis flush 1337Ë¢ÐÂÌØ¶¨Õ¾µãʱµÄº±¼û´íÎó
°²È«ÎÊÌâ
·ÀÖ¹ÓзçÏյIJå¼þ×Ô¶¯¸üÐÂ
ʹÓð汾¿ØÖÆÊ±·ÀÖ¹²å¼þÉý¼¶
v1.14.5 – 2022-03-22
ÐÂÔö
ʹÓÃRelayʱ½«ËùÓÐÑ¡Ïî´æ´¢Îªµ¥¶ÀµÄÃÜÔ¿
Ôö¼ÓÁ˶ÔRelayÅäÖõĽ¡¿µ¼ì²é
Ôö¼ÓÁËPlugin::config()¸¨Öú·½·¨
¸ü¸Ä
½«RelayµÄÒªÇóÌá¸ßµ½v0.3.0
ͨ¹ý»º´æÇ°×º¼Ó¿ìÁËObjectCache::id()µÄ²éÕÒËÙ¶È
µ±Ê¹ÓÃasync_flushʱ£¬¼Ó¿ìÁËalloptions¹þÏ£µÄɾ³ý¡£
??½«SplitsAllOptionsÌØÐÔÖØÃüÃûΪSplitsAllOptionsIntoHash
ÐÞÕý
ÐÞÕýÁ˶Ծɰæ²éѯ¼àÊÓÆ÷µÄÖ§³Ö
ÔÚÕï¶ÏÖÐÌí¼ÓÁËȱʧµÄÖØÊԺͻØÍ˹¦ÄÜ
±ÜÃâÁËConnection::ioWait()Öеĺ±¼û´íÎó
±ÜÃâÁËÕï¶Ï³ÌÐòÖеĺ±¼ûµÄTypeError
±ÜÃâÁËÔÚûÓÐÁ¬½ÓµÄÇé¿öϲéѯ¼à¿ØÖеĺ±¼û´íÎó
v1.14.4 – 2022-02-03
Ìí¼Ó
ÒýÈëÁËObjectCache::ClientºÍObjectCache::clientName()
¸Ä±ä
ʹÓÃQM_VERSIONÀ´¼ì²â²éѯ¼àÊÓÆ÷µÄ°æ±¾
½«¼Ç¼µÄÃüÁîÃû³Æ×ª»»Îª´óд×Öĸ
ÔÚµ÷ÓÃRelayµÄsocketId()¡¢socketKey()»òlicense()ʱ£¬±ÜÃâÈÕÖ¾À¬»ø¡£
ʹisMustUse()ºÍusingVCS()°ïÖúÆ÷³ÉΪ¾²Ì¬¡£
ºöÂÔ²éѯ¼àÊÓÆ÷»ØËÝÖеÄËùÓÐÁ¬½Ó·½·¨
ʹÓÃеÄqm/component_type/unknown¹ýÂËÆ÷À´ÉèÖÃ×é¼þÀàÐÍ
ÐÞÕý
±ÜÃâÔÚ²éѯ¼àÊÓÆ÷ÖÐÏÔʾº±¼ûÃüÁîʱ³öÏÖ¾¯¸æ
¾virustotal²âÊÔ£¬Îļþ°²È«¡£Èç¹û½éÒâµÄ»°£¬×ÔÐвâÊÔ¡£