chào mọi người, em đang làm api và muốn caching resposne, hiện tại caching thì em làm được nhưng mỗi khi dữ liệu thay đổi thì Cache k được cập nhập theo, mọi người cho em giải pháp với ạ,
Mình ko biết "API Caching response" của bạn là gì. Nhưng nếu muốn cập nhật cache thì mỗi lần thay đổi dữ liệu thì bạn tạo lại cache mới cho cache nào đã sử dụng dữ liệu thay đổi đó là được mà. Còn trường hợp khác là cái chỉ thay đổi 1 field trong số nhiều fields trong API trả về thì bạn cần làm 1 khóa tổng để kiểm tra dữ liệu có thay đổi không trước khi gửi cache cho user: Ví dụ như cache 8 fields thì có tổng là 8 dc lưu ở 1 file hoặc db. Mỗi lần có 1 fields thay đổi tương ứng theo stt fields nào đó như field số 2 thì khóa là 82. Kiểm tra thấy khóa > 8 thì update lại cache mới, rewrite lại khóa về 8 rồi reponse đến user. Còn thực tế có cách nào khác đơn giản hơn thì mình không biết
về mặt chuyên môn thì cái này gõ vài trang A4 không hết đâu, nghệ thuật của cache là setup cache ở tầng nào, lifetime bao lâu và invalidate lúc nào. Nó bao gồm nhiều vấn đề, và nhiều vị trí có thể cache (cdn, web server, web application, db...), nếu tiện thì bạn có thể mô tả sơ sơ một chút về các api, về traffic, về kiến trúc trong ngoài, ngôn ngữ sử dụng... thì ae dễ hiểu chủ đề để mà chém gió hơn
Em cũng nghĩ cao siêu như vậy á mới trả lời hết câu hỏi trừu tượng này đó cụ. Mà thấy thớt sắp trôi qua khung newsfeed rồi mà ko ai rep hết nên vào rep đại cho chủ thớt.
Mỗi khi dữ liệu thay đổi là tầm bao lâu mới được, bạn đưa ra câu hỏi chung chung quá ae cũng chả thể nào help được. Muốn thay đổi cache thì clear cache cũ, tạo cache mới thôi, tuy nhiên phải xem khoảng thời gian giữa mỗi lần thay đổi có ngắn quá ko, ngắn quá thì cache chả có tác dụng gì.
--- Double Post Merged, Apr 28, 2022, Original Post Date: Apr 28, 2022 --- Em làm một dự án ReactJS, tự viết API, vì muốn tăng tốc độ trả về của API nên em muốn Cache response của API lại, chắc là em sẽ dùng redis cache trên server api luôn, web này CCU khá thấp khoản 50 - 100 người truy cập cùng một lúc, nếu bác có solution nào hay thì chỉ giáo em với