{"id":212,"date":"2024-08-13T04:18:57","date_gmt":"2024-08-13T04:18:57","guid":{"rendered":"http:\/\/3.84.21.125\/?p=212"},"modified":"2024-08-13T04:19:40","modified_gmt":"2024-08-13T04:19:40","slug":"cach-magento-doc-data-tu-redis-cache","status":"publish","type":"post","link":"https:\/\/blog.hnk90.com\/?p=212","title":{"rendered":"C\u00e1ch Magento \u0110\u1ecdc Data T\u1eeb Redis Cache"},"content":{"rendered":"\n<p>Tr\u01b0\u1edbc khi \u0111\u1ecdc b\u00e0i n\u00e0y th\u00ec b\u1ea1n n\u00ean n\u1eafm qua ki\u1ebfn th\u1ee9c v\u1ec1 redis cache nh\u00e9.<br>\u0110\u1ec3 hi\u1ec3u c\u00e1ch Magento \u0111\u1ecdc data t\u1eeb redis cache th\u00ec c\u00e1c b\u1ea1n c\u00f3 th\u1ec3 ti\u1ebfp c\u1eadn theo nh\u1eefng b\u01b0\u1edbc sau \u0111\u00e2y.<\/p>\n\n\n\n<p>\u0110\u1ea7u ti\u00ean c\u00e1c b\u1ea1n n\u00ean bi\u1ebft module thao t\u00e1c v\u1edbi redis cache l\u00e0 colinmollenhour<br>file path: vendor\/colinmollenhour\/cache-backend-redis\/Cm\/Cache\/Backend\/Redis.php<\/p>\n\n\n\n<p>H\u00e0m load trong file n\u00e0y s\u1ebd load cache t\u1eeb trong redis ra<br>file path: \\Cm_Cache_Backend_Redis::load<\/p>\n\n\n\n<p>Th\u1eed l\u00e0m m\u1ed9t v\u00ed d\u1ee5:<\/p>\n\n\n\n<p>tr\u01b0\u1edbc h\u1ebft th\u00ec \u1edf localhost c\u1ee7a m\u00ecnh c\u00f3 config redis cache nh\u01b0 sau, data n\u1eb1m \u1edf 2 node: 2 v\u00e0 3<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"563\" height=\"483\" src=\"http:\/\/3.84.21.125\/wp-content\/uploads\/2024\/08\/2024-08-13_10-54.png\" alt=\"\" class=\"wp-image-214\" srcset=\"https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/2024-08-13_10-54.png 563w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/2024-08-13_10-54-300x257.png 300w\" sizes=\"auto, (max-width: 563px) 100vw, 563px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"357\" height=\"286\" src=\"http:\/\/3.84.21.125\/wp-content\/uploads\/2024\/08\/image.png\" alt=\"\" class=\"wp-image-215\" srcset=\"https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image.png 357w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-300x240.png 300w\" sizes=\"auto, (max-width: 357px) 100vw, 357px\" \/><\/figure>\n\n\n\n<p>Gi\u1edd load frontend xong debug xem Magento get data nh\u01b0 n\u00e0o nh\u00e9<\/p>\n\n\n\n<p>\u0111\u1ea7u ti\u00ean debug t\u1ea1i \\Magento\\Framework\\App\\Http::launch, v\u00ec m\u1ecdi request s\u1ebd \u0111\u01b0\u1ee3c b\u1eaft \u0111\u1ea7u t\u1eeb \u0111\u00e2y<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"972\" height=\"290\" src=\"http:\/\/3.84.21.125\/wp-content\/uploads\/2024\/08\/image-1.png\" alt=\"\" class=\"wp-image-216\" srcset=\"https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-1.png 972w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-1-300x90.png 300w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-1-768x229.png 768w\" sizes=\"auto, (max-width: 972px) 100vw, 972px\" \/><\/figure>\n\n\n\n<p>L\u01b0u \u00fd l\u00e0 request \u0111ang debug ph\u1ea3i \u0111\u00fang nh\u00e9, v\u00ed d\u1ee5 b\u1ea1n \u0111ang load url \u1edf frontend th\u00ec ki\u1ec3m tra l\u1ea1i ch\u1eafc ch\u1eafn m\u00ecnh \u0111ang debug \u0111\u00fang request \u0111\u00f3. Nh\u01b0 d\u01b0\u1edbi \u0111\u00e2y, ki\u1ec3m tra URI xem c\u00f3 \u0111\u00fang l\u00e0 c\u1ee7a frontend kh\u00f4ng nh\u00e9<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"830\" src=\"http:\/\/3.84.21.125\/wp-content\/uploads\/2024\/08\/image-6-1024x830.png\" alt=\"\" class=\"wp-image-221\" srcset=\"https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-6-1024x830.png 1024w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-6-300x243.png 300w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-6-768x623.png 768w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-6.png 1077w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Ti\u1ebfp theo \u0111\u1eb7t debug t\u1ea1i \\Magento\\PageCache\\Model\\App\\FrontController\\BuiltinPlugin::aroundDispatch, l\u00fd do l\u00e0 v\u00ec m\u00ecnh \u0111ang config s\u1eed d\u1ee5ng redis cache, v\u00e0 redis cache v\u1eabn Magento \u0111\u01b0\u1ee3c coi l\u00e0 Builtin Cache <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"996\" height=\"399\" src=\"http:\/\/3.84.21.125\/wp-content\/uploads\/2024\/08\/image-2.png\" alt=\"\" class=\"wp-image-217\" srcset=\"https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-2.png 996w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-2-300x120.png 300w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-2-768x308.png 768w\" sizes=\"auto, (max-width: 996px) 100vw, 996px\" \/><\/figure>\n\n\n\n<p>Ti\u1ebfp theo l\u00e0 \\Magento\\Framework\\App\\PageCache\\Kernel::load<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"776\" height=\"263\" src=\"http:\/\/3.84.21.125\/wp-content\/uploads\/2024\/08\/image-3.png\" alt=\"\" class=\"wp-image-218\" srcset=\"https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-3.png 776w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-3-300x102.png 300w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-3-768x260.png 768w\" sizes=\"auto, (max-width: 776px) 100vw, 776px\" \/><\/figure>\n\n\n\n<p>\u1ede \u0111\u00e2y c\u00e1c b\u1ea1n l\u01b0u \u00fd cache \u0111\u01b0\u1ee3c save d\u01b0\u1edbi d\u1ea1ng cache key, v\u1eady n\u00ean \u0111o\u1ea1n $this->identifier->getValue() s\u1ebd tr\u1ea3 v\u1ec1 cache key nh\u00e9<\/p>\n\n\n\n<p>Ti\u1ebfp theo l\u00e0 h\u00e0m \\Zend_Cache_Core::load trong file path: vendor\/magento\/zendframework1\/library\/Zend\/Cache\/Core.php, x\u1eed l\u00fd n\u00e0y thu\u1ed9c v\u1ec1 steps trung gian c\u1ee7a core n\u00ean c\u00f3 th\u1ec3 b\u1ecf qua debug c\u0169ng \u0111\u01b0\u1ee3c, v\u00ec cu\u1ed1i c\u00f9ng request s\u1ebd \u0111\u01b0\u1ee3c g\u1eedi t\u1edbi redis \u0111\u1ec3 x\u1eed l\u00fd<\/p>\n\n\n\n<p>Ti\u1ebfp theo l\u00e0 \\Cm_Cache_Backend_Redis::load trong file path: vendor\/colinmollenhour\/cache-backend-redis\/Cm\/Cache\/Backend\/Redis.php<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"899\" height=\"426\" src=\"http:\/\/3.84.21.125\/wp-content\/uploads\/2024\/08\/image-5.png\" alt=\"\" class=\"wp-image-220\" srcset=\"https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-5.png 899w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-5-300x142.png 300w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-5-768x364.png 768w\" sizes=\"auto, (max-width: 899px) 100vw, 899px\" \/><\/figure>\n\n\n\n<p>v\u1ec1 c\u01a1 b\u1ea3n th\u00ec \u0111o\u1ea1n code <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$data = $this->_redis->hGet(self::PREFIX_KEY.$id, self::FIELD_DATA);<\/code><\/pre>\n\n\n\n<p>t\u01b0\u01a1ng \u0111\u01b0\u01a1ng v\u1edbi l\u1ec7nh: hget &lt;key> &lt;field> trong redis<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"61\" src=\"http:\/\/3.84.21.125\/wp-content\/uploads\/2024\/08\/image-7-1024x61.png\" alt=\"\" class=\"wp-image-222\" srcset=\"https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-7-1024x61.png 1024w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-7-300x18.png 300w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-7-768x46.png 768w, https:\/\/blog.hnk90.com\/wp-content\/uploads\/2024\/08\/image-7.png 1079w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>N\u1ebfu c\u00f3 data trong redis th\u00ec h\u1ec7 th\u1ed1ng s\u1ebd tr\u1ea3 ra, n\u1ebfu kh\u00f4ng th\u00ec h\u1ec7 th\u1ed1ng s\u1ebd load m\u1edbi &#8211; sau \u0111\u00f3 save l\u1ea1i v\u00e0o redis cache.<\/p>\n\n\n\n<p>B\u00e0i vi\u1ebft n\u00e0y d\u1eebng \u1edf \u0111\u00e2y, b\u00e0i sau m\u00ecnh s\u1ebd n\u00f3i v\u1ec1 c\u00e1ch Magento save data v\u00e0 cache nh\u00e9. ! <\/p>\n\n\n\n<p>Bye bye. !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tr\u01b0\u1edbc khi \u0111\u1ecdc b\u00e0i n\u00e0y th\u00ec b\u1ea1n n\u00ean n\u1eafm qua ki\u1ebfn th\u1ee9c v\u1ec1 redis cache nh\u00e9.\u0110\u1ec3 hi\u1ec3u c\u00e1ch Magento \u0111\u1ecdc data t\u1eeb redis cache th\u00ec c\u00e1c b\u1ea1n c\u00f3 th\u1ec3 ti\u1ebfp c\u1eadn theo nh\u1eefng b\u01b0\u1edbc sau \u0111\u00e2y. \u0110\u1ea7u ti\u00ean c\u00e1c b\u1ea1n n\u00ean bi\u1ebft module thao t\u00e1c v\u1edbi redis cache l\u00e0 colinmollenhourfile path: vendor\/colinmollenhour\/cache-backend-redis\/Cm\/Cache\/Backend\/Redis.php H\u00e0m load trong [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-212","post","type-post","status-publish","format-standard","hentry","category-magento"],"_links":{"self":[{"href":"https:\/\/blog.hnk90.com\/index.php?rest_route=\/wp\/v2\/posts\/212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.hnk90.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.hnk90.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.hnk90.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.hnk90.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=212"}],"version-history":[{"count":2,"href":"https:\/\/blog.hnk90.com\/index.php?rest_route=\/wp\/v2\/posts\/212\/revisions"}],"predecessor-version":[{"id":223,"href":"https:\/\/blog.hnk90.com\/index.php?rest_route=\/wp\/v2\/posts\/212\/revisions\/223"}],"wp:attachment":[{"href":"https:\/\/blog.hnk90.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.hnk90.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.hnk90.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}