የአንቀጽ ማውጫ
በአንድ አገልጋይ ላይ በርካታ የዎርድፕረስ ድረ ገጾችን ማስኬድ እና የሬድስ ነገር መሸጎጫ ማንቃት ይፈልጋሉ፣ ነገር ግን የተሸጎጠ ውሂብ እርስ በእርስ በመተካት እና የፊት-መጨረሻ ስህተቶችን ስለማድረግ ይጨነቃሉ? ይህ አጋዥ ስልጠና በተመሳሳይ አገልጋይ ላይ ለብዙ የዎርድፕረስ ድረ ገጾች Redisን ለማዋቀር የመጨረሻውን መመሪያ ይሰጣል!
ይህ አጋዥ ስልጠና የተለያዩ የ Redis ዳታቤዞችን (0-15) እና የ Cache Key Salt ቅድመ ቅጥያ ማግለልን በ wp-config.php በማሻሻል ለመመደብ ሁለት ዘዴዎችን ያስተምራል። እነዚህ ዘዴዎች የውሂብ መደበቅን በትክክል ይፈታሉ እና ከፍተኛ-ተመሳሳይ አገልጋዮችን አፈፃፀም በእጅጉ ያሻሽላሉ። ለድር አስተዳዳሪዎች የግድ ሊኖርዎት የሚገባ!
ከጥቂት ቀናት በፊት፣ አንድ ገለልተኛ ድረ-ገጽ የሚያስተዳድር ጓደኛዬ ሁለቱ የዎርድፕረስ ድረ-ገጾቹ በቅርብ ጊዜ እንግዳ በሆነ መንገድ እየሰሩ መሆናቸውን ቅሬታ አቅርቧል። ከድር ጣቢያ A የተለጠፉ ርዕሶች ወደ ድር ጣቢያ B መዘዋወራቸውን ቀጥለዋል፣ እና ከድር ጣቢያ B የተሸጎጡ ምስሎች በድረ-ገጽ A የአስተያየት ክፍል ውስጥ በማይታወቅ ሁኔታ ይታያሉ። ወዲያውኑ ሳቅኩ፤ ሬዲስ ለገለልተኝነት አለመዋቀሩ ብቻ ነው።
እስቲ አስቡት፦ ብዙ ሰዎች ገንዘብ ለመቆጠብ ሲሉ በርካታ የዎርድፕረስ ድረ ገጾችን በተመሳሳይ አገልጋይ ላይ መክተት እና ሁሉንም መሸጎጫ ለማድረግ Redisን መጠቀም ይወዳሉ። ውጤቱስ? ሁሉም ድረ ገጾች በነባሪነት ከ Redis Database 0 ጋር ይገናኛሉ፣ ይህም የውሂብ ብጥብጥ ያስከትላል። የድረገጽ A መሸጎጫ ቁልፍ ከድር ጣቢያ B መሸጎጫ ቁልፍ ጋር የሚገጣጠም ከሆነ፣ ይህ ለአደጋ የሚያጋልጥ የምግብ አሰራር ነው።
እውነቱን ለመናገር፣ እኔ ራሴ በዚህ ወጥመድ ውስጥ ወድቄያለሁ። ውስጣዊ የእውቀት መሰረት ስገነባ፣ ሁለት የሙከራ አካባቢዎች አንድ የሬዲስ ምሳሌ ተጋርተዋል፣ ይህም መሸጎጫዎች እርስ በእርስ እንዲተሳሰሩ ምክንያት ሆኗል። ችግሩን ለማወቅ ብዙ ጊዜ ፈጅቶብኛል። ስለዚህ፣ በዚህ አካባቢ የማካፍለው የመጀመሪያ ደረጃ ልምድ አለኝ።
ይህንን ችግር ለመፍታት ዋናው ሀሳብ ማግለል ነው። የእያንዳንዱ ድህረ ገጽ መረጃ እርስ በእርስ ጣልቃ ሳይገባ በራሱ የተለየ ቦታ ላይ ይቆያል። ይህንን ማግለል እንዴት እናሳካለን? ሁለት ዋና ዋና አቀራረቦች አሉ።

አማራጭ 1፡ የተለያዩ የሬድስ ዳታቤዞችን ለተለያዩ ድረ-ገጾች መድብ
በሄስቲያሲፒ ውስጥ የሬድስ ማህደረ ትውስታ መሸጎጫ እንዴት መጫን እንደሚቻል?
የመጀመሪያው አቀራረብ፣ እሱም የእኔ ዋና ምክሬ የሆነው፣ እያንዳንዱን ድር ጣቢያ የተለየ የሬድስ ዳታቤዝ መመደብ ነው። ሬድስ በነባሪነት ከ0 እስከ 15 የተቆጠሩ 16 የውሂብ ጎታዎች አሉት። ድር ጣቢያ A የውሂብ ጎታ 0፣ ድር ጣቢያ B የውሂብ ጎታ 1 እና የመሳሰሉትን መጠቀም ይችላሉ። ይህ ለእያንዳንዱ ድር ጣቢያ የተለየ የሃርድ ድራይቭ ክፍልፍል መስጠት፣ አካላዊ የውሂብ ማግለል እና በጣም ንጹህ የውሂብ ማከማቻን ማረጋገጥ ነው።
የተወሰኑት ደረጃዎች እንደሚከተለው ናቸው፡- በመጀመሪያ፣ በእያንዳንዱ የዎርድፕረስ ድር ጣቢያ የአስተዳዳሪ ፓነል ውስጥ "Redis Object Cache" የሚባል ተሰኪ ይጫኑ። ገንቢው ቲል ክሩስ ሲሆን ይህ ተሰኪ በጣም የተረጋጋ እና አስተማማኝ ነው። መሸጎጫን እስካሁን አያንቁ። ከዚያም፣ በኤፍቲፒ ወይም ኤስኤስኤች በኩል ከአገልጋዩ ጋር ይገናኙ፣ በእያንዳንዱ ድር ጣቢያ የስር ማውጫ ውስጥ የwp-config.php ፋይልን ያግኙ፣ እና ከ"/* መስመር በላይ ጥቂት የውቅር መስመሮችን ያክሉ፣ ማርትዕ አቁም! መልካም ህትመት። */".
ለምሳሌ፣ የድረ-ገጽ A ውቅር፡
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_DATABASE', 0 ); // 用数据库0
define( 'WP_CACHE_KEY_SALT', 'site_a_' ); // 加个独立前缀,双重保险ለድር ጣቢያ B፣ የውሂብ ጎታ ቁጥሩን እና ቅድመ ቅጥያውን በቀላሉ ይቀይሩ፡
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_DATABASE', 1 ); // 用数据库1
define( 'WP_CACHE_KEY_SALT', 'site_b_' ); // 前缀也要改በነገራችን ላይ፣ የእርስዎ የሬዲስ ምሳሌ የይለፍ ቃል ካለው፣ ለእያንዳንዱ ድር ጣቢያ ውቅር ማከልም ያስፈልግዎታል፡
define( 'WP_REDIS_PASSWORD', '你的Redis密码' );የውቅር ፋይሉን ካሻሻሉ በኋላ፣ ወደ እያንዳንዱ ድር ጣቢያ የዎርድፕረስ አስተዳዳሪ ፓነል ይመለሱ ፣ "ቅንብሮች" -> "Redis" ን ያግኙ እና "የነገር መሸጎጫ አንቃ" የሚለውን ጠቅ ያድርጉ። ሁሉም ነገር ያለችግር ከሄደ፣ ሁኔታው "ተገናኝቷል" ያሳያል። በዚህ ጊዜ፣ በሁለቱ ድር ጣቢያዎች ላይ ያለው መረጃ ተነጥሎ ይገኛል።
አማራጭ 2፡ የተለያዩ የሬድስ ቁልፍ ቅድመ ቅጥያዎችን (ጨው) ይጠቀሙ
ሆኖም ግን፣ አስቀድሜ ማስጠንቀቅ ያለብኝ አንድ ወጥመድ አለ። ከ16 በላይ ድረ-ገጾች ካሉዎት ወይም አንድ የውሂብ ጎታ ብቻ የሚሰጥ የደመና ሬድስ አገልግሎት የሚጠቀሙ ከሆነ፣ የመጀመሪያው አቀራረብ አይሰራም። በዚህ ሁኔታ፣ ሁለተኛውን አቀራረብ መጠቀም ያስፈልግዎታል፡ የተለያዩ የሬድስ ቁልፍ ቅድመ-ቅጥያዎችን (ጨው) መጠቀም።
ይህ አካሄድ ሁሉም ድረ-ገጾች ተመሳሳይ የሬድስ ዳታቤዝ እንዲያጋሩ ያስችላቸዋል፣ ነገር ግን ልዩ ቅድመ-ቅጥያ በመጠቀም ውሂብን ይለያል። በቀላል አነጋገር፣ ሁሉም ሰው በተመሳሳይ ሕንፃ ውስጥ እንደሚኖር ነው፣ ነገር ግን እያንዳንዱ አፓርትመንት ልዩ አድራሻ ስላለው የማድረሻ አሽከርካሪዎች ስህተት እንዳይሠሩ ይከላከላል።
የውቅር ዘዴው ተመሳሳይ ነው፣ እንዲሁም በwp-config.php ውስጥ ውቅር መጨመርን ያካትታል፣ ነገር ግን ቁልፉ WP_CACHE_KEY_SALT ልዩ መሆን አለበት፣ WP_REDIS_DATABASE ደግሞ ተመሳሳይ ሊሆን ይችላል (ወይም ባዶ ሆኖ ሲቀር፣ ነባሪው 0 ነው)።
የድረ-ገጽ A ውቅር፡
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_DATABASE', 0 );
define( 'WP_CACHE_KEY_SALT', 'www_siteA_com_' ); // 确保唯一የድህረ ገጽ ቢ ውቅር፡
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_DATABASE', 0 );
define( 'WP_CACHE_KEY_SALT', 'www_siteB_com_' ); // 确保唯一ከተዋቀረ በኋላ፣ በተሰኪው የኋላ ክፍል ውስጥ መሸጎጫውን በቀላሉ ያንቁ።
የተለመዱ የሬድስ ውቅር ችግሮች እና መፍትሄዎች
ሆኖም ግን፣ ሁለተኛው አማራጭ ተለዋዋጭ ቢሆንም፣ አደጋ ሊያስከትል እንደሚችል በግልጽ መናገር አለብኝ። ተሰኪዎ መሸጎጫውን ሲያጸዱ መላውን የውሂብ ጎታ 0 ካጸዳ፣ ከሌሎች ድር ጣቢያዎች የሚገኝ መረጃ በስህተት ሊጎዳ ይችላል። ስለዚህ፣ 16 ወይም ከዚያ ያነሱ ድር ጣቢያዎች ካሉዎት፣ ለበለጠ ደህንነት የመጀመሪያውን አማራጭ እንዲጠቀሙ አጥብቄ እመክራለሁ።
በማዋቀር ሂደቱ ወቅት አንዳንድ ችግሮች ሊያጋጥሙዎት ይችላሉ። ለምሳሌ፣ ድህረ ገጹ የውቅር ለውጦችን ካደረጉ በኋላ ስህተቶችን ወይም ባዶ ማያ ገጽ ሊያሳይ ይችላል። በእንደዚህ ዓይነት ሁኔታዎች፣ ማንኛውም ኮማ ወይም ሰሚኮሎን የጎደለ መሆኑን ለማየት በመጀመሪያ በwp-config.php ውስጥ ያለውን የኮድ አገባብ ያረጋግጡ። በተጨማሪም፣ የPHP Redis ቅጥያ (php-redis) በአገልጋዩ ላይ መጫኑን ያረጋግጡ፤ ካልሆነ መጀመሪያ ይጫኑት።
ሌላው የተለመደ ጥያቄ፡ የአንድ የተወሰነ ድር ጣቢያ መሸጎጫ እንዴት ማጽዳት እችላለሁ? በእያንዳንዱ ድር ጣቢያ የዎርድፕረስ አስተዳዳሪ ፓነል ውስጥ "Flush Cache" የሚለውን ጠቅ ያድርጉ። የመጀመሪያውን ዘዴ (የተለያዩ የውሂብ ጎታዎች) የሚጠቀሙ ከሆነ፣ ከአሁኑ ድር ጣቢያ ጋር የሚዛመደውን የውሂብ ጎታ ብቻ ያጸዳል እና ሌሎች ድር ጣቢያዎችን አይጎዳውም። ሁለተኛውን ዘዴ የሚጠቀሙ ከሆነ (ተመሳሳይ የውሂብ ጎታ፣ የተለያዩ ቅድመ ቅጥያዎች)፣ አንዳንድ ተሰኪዎች በፍሎሽ ሂደቱ ወቅት መላውን የውሂብ ጎታ 0 ሊያጸዱ ይችላሉ፣ ስለዚህ የመጀመሪያው ዘዴ ለብዙ ጣቢያዎች ይመከራል።
ሬዲስን ማዋቀር በእውነቱ ብዙ ስልኮችን እንደ መሙላት ነው። ለእያንዳንዱ ስልክ የግለሰብ ቻርጀር መጠቀም ይችላሉ (አማራጭ 1)፣ ወይም ለእያንዳንዱ ገመድ ገለልተኛ ማብሪያ / ማጥፊያ ያለው የኃይል ማስተላለፊያ መስመር መጠቀም ይችላሉ (አማራጭ 2)። ዋናው መርህ የኃይል መሙያ ደህንነትን ማረጋገጥ እና የአጭር ዑደት መከላከል ነው።
ብዙ ድረ-ገጾችን ለመጀመሪያ ጊዜ ማዋቀር ስጀምር፣ ሬዲስን ማዋቀር ቀላል እንደሆነ አስቤ ነበር - ጥቂት መለኪያዎችን መቀየር ብቻ ነው፣ አይደል? ነገር ግን ወደ ምርት ሲገባ፣ የተለያዩ የመሸጎጫ ችግሮች ብቅ አሉ። በኋላ ላይ ቴክኒካዊ ዝርዝሮች ብዙውን ጊዜ በእነዚያ "ቀላል በሚመስሉ" ቦታዎች ውስጥ እንደሚደበቁ ተገነዘብኩ።
አሁን ወደ ኋላ መለስ ብለን ስንመለከት፣ የማዋቀር ሂደቱ ራሱ ውስብስብ አልነበረም፣ ነገር ግን የመነጠል መሰረታዊ ፅንሰ-ሀሳብ ወሳኝ ነበር። በስርዓት ዲዛይን፣ ማግለል መረጋጋትን ለማረጋገጥ ቁልፍ ነገር ነው። ልክ እንደ የከተማ ፕላን፣ የመኖሪያ አካባቢዎች፣ የኢንዱስትሪ አካባቢዎች እና የንግድ አካባቢዎች መለያየት አለባቸው፣ አለበለዚያ ትርምስ ይከሰታል።
ለቴክኒካል ውቅርም ተመሳሳይ ነው። እያንዳንዱ ድህረ ገጽ ከሌሎች ጋር ጣልቃ ሳይገባ የራሱ የሆነ ነጻ ቦታ ሊኖረው ይገባል። ይህ የቴክኒክ ጉዳይ ብቻ ሳይሆን የዲዛይን ፍልስፍናም ጭምር ነው ።
እስካሁን ድረስ ስላነበቡት፣ ጠቃሚ ሆኖ ካገኙት፣ እባክዎን ላይክ እና ሼር ያድርጉ። መጀመሪያ ዝማኔዎችን መቀበል ከፈለጉ፣ እኔንም መከተል ይችላሉ!
ጽሑፌን ስላነበባችሁልኝ አመሰግናለሁ። በሚቀጥለው ጊዜ እንገናኝ።
"በተመሳሳይ አገልጋይ ላይ ለብዙ የዎርድፕረስ ድረ-ገጾች Redisን እንዴት ማዋቀር እንደሚቻል? የውሂብ መደበቅን ስለማስወገድ የመጨረሻው አጋዥ ስልጠና" በቼን ዌይሊያንግ ጦማር ( https://www.chenweiliang.com/ ) ላይ የተጋራው ጽሑፍ ለእርስዎ ጠቃሚ እንደሚሆን ተስፋ እናደርጋለን።
የዚህን ጽሑፍ ሊንክ ለማጋራት ነፃነት ይሰማዎ፦ https://www.chenweiliang.com/cwl-34366.html
