Các bạn có thể xem lại cách Magento lấy data từ cache redis trong bài này http://3.84.21.125/?p=212
Với bài này thì thử tìm hiểu Magento save cache mới như nào nhé, đầu tiên hãy flush cache đi
bin/magento cache:flush
Tiếp theo load frontend, giả sử mình load lại một page product detail bất kỳ trên site localhost của mình.
File debug đầu tiên tất nhiên là \Magento\Framework\App\Http::launch, để ý request URI phải đúng là request từ phía frontend mà mình đang muốn debug nhé
Ví dụ, để ý URL request sẽ tương ứng với request uri khi debug

Tiếp theo là \Magento\PageCache\Model\App\FrontController\BuiltinPlugin::aroundDispatch

do không có cache nên $result sẽ là false nên hệ thống tiếp tục xử lý để trả ra kết quả, và sau đó save lại
vào cache ở function
\Magento\PageCache\Model\Controller\Result\BuiltinPlugin::afterRenderResult

Tiếp theo, cache được save như sau \Magento\Framework\App\PageCache\Kernel::process

Ở đây lưu ý hàm save của fullPageCache nhận vào một số tham số quan trọng như
- tham số đầu tiên là data – chính là data được save vào cache
- cache key – mỗi data được save vào cache đều có cache key riêng
- tags – data save trong cache sẽ có nhiều tag
ở đây tìm hiểu qua xem cache key được tạo ra như thế nào, các bạn có thể thấy function
$this->identifier->getValue()
function này được process ở \Magento\Framework\App\PageCache\Identifier::getValue

Đơn giản mảng data 3 phần tử: secure, uri, vary string được json encode lại và được mã hóa bằng hàm sha1
Ngoài ra sẽ có thêm một vài after plugin tham vào quá trình generate ra cache key,

ở đây cache key có dạng kiểu như sau: 7a9_7C7EA5EDCDDEF27535143BF11244D808A9E5685E
Cuối cùng là data được save vào Redis Cache ở function \Cm_Cache_Backend_Redis::save – trong file path
vendor/colinmollenhour/cache-backend-redis/Cm/Cache/Backend/Redis.php

Sau khi chạy xong debug thì các bạn có vào Redis kiểm tra, ở đây mình sử dụng tool phpstorm để xem cho nhanh, hoặc các bạn có thể sử dụng command line để xem nhé

Bài này tới đây thôi, bài tiếp theo chúng ta thử xem Magento xóa một vài dữ liệu cụ thể từ Redis Cache như nào nhé.
Bye Bye !