Phổ biến:
Chúng là tất cả bộ nhớ cache .
Tất cả chúng đều được sử dụng để giảm chi phí thời gian .
Mạng vi phân:
Cấu hình và lộ trình:
Nó thuộc về ứng dụng . Chúng tôi gọi nó là Bộ đệm ứng dụng .
php artisan config:cache
php artisan route:cache
Hai lệnh này là các định tuyến và cấu hình bộ nhớ đệm.
PATH:
Chúng luôn được lưu trữ trong
bootstrap/cache/
Đang chạy
php artisan config:clear
php artisan route:clear
Chỉ xóa các thư mục và tệp trong bootstrap/cache/
.
Chúng tĩnh . Vì vậy, chúng chỉ được thay đổi khi bạn thay đổi chúng.
Benifit
Nếu bạn thay đổi chúng, bạn cần phải clear
và cache
chúng theo cách thủ công.
Sau khi bạn xác định các tuyến đường và cấu hình này.
Laravel không cần đọc lại các cấu hình và tuyến đường từ tệp tốn thời gian IO.
Bộ đệm ẩn hệ thống tập tin và bộ nhớ đệm Redis:
Bộ nhớ cache của hệ thống tệp và bộ nhớ cache của Redis cũng là bộ nhớ cache.
Tuy nhiên, họ sử dụng trình điều khiển khác nhau để lưu trữ dữ liệu, nghĩa là nơi bạn lưu trữ dữ liệu trong bộ nhớ đệm .
Hệ thống tập tin PATH:Nếu bạn đang sử dụng trình điều khiển hệ thống tập tin. chúng được lưu trữ trong
storage/framework/cache/
Reids PATH:Kho dữ liệu trong
redis
theo khóa-giá trị.
Bạn sử dụng chúng khi nào?
Khi bạn nhận thấy rằng có nhiều yêu cầu đối với mã này để nhận dữ liệu và các dữ liệu này không được thay đổi quá nhanh.
Bạn có thể sử dụng bộ nhớ đệm để lưu trữ chúng và sau đó, lần sau khi có yêu cầu khác tới api này. Bạn chỉ cần lấy dữ liệu từ bộ nhớ đệm. Như bên dưới:
$posts = Cache::remember('index.posts', 30, function()
{return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();});
Yêu cầu đầu tiên lấy dữ liệu của bài đăng từ cơ sở dữ liệu, sau đó lưu trữ các dữ liệu này trong bộ nhớ đệm (Reids hoặc Hệ thống tệp) đã hết hạn sau 30 giây.
Yêu cầu tiếp theo chỉ nhận dữ liệu của bài đăng thông qua bộ nhớ cache. Họ không cần phải tìm kiếm lại trong cơ sở dữ liệu.
Và cái này:
use Illuminate\Support\Facades\Redis;
Route::get('/', function () {
$visits = Redis::incr('visits');
return $visits;
});
Có nghĩa là khi mọi người yêu cầu localhost:8000/
, số lượt truy cập của người dùng tăng lên trong redis
(không cần lưu trong cơ sở dữ liệu, tốn nhiều thời gian hơn), lần sau, khi có yêu cầu tìm kiếm số lượt truy cập, bạn có thể tìm thấy nó trong redis
rất nhanh.
Tái bút:Ở đây sử dụng Redis Facade, sau đó dữ liệu được lưu trữ trong
redis
.Nếu bạn đang sử dụng redis làm trình điều khiển bộ nhớ cache, hãy
Cache::remember()
cũng sẽ lưu trữ dữ liệu trong redis.Tuy nhiên, sử dụng Redis Facade, bạn có thể sử dụng nhiều phương pháp redis.
Cái nào tốt hơn?
Tôi nghĩ redis
tốt hơn filesystem
.
-
Bởi vì
redis
lưu trữ dữ liệu trong bộ nhớ và lưu trữ hệ thống tệp trong đĩa. Đọc dữ liệu từ bộ nhớ nhanh hơn hơn đĩa. -
Vận hành dữ liệu trong Redis dễ dàng hơn hơn Hệ thống tập tin. Ví dụ:Redis hỗ trợ xóa tất cả bộ nhớ cache cho một thẻ cụ thể, nhưng hệ thống tệp không thể [Vì hệ thống tệp lưu trữ dữ liệu bộ nhớ cache theo tên của khóa được mã hóa].
-
Đối với đã phân phối máy chủ, bộ nhớ cache của hệ thống tập tin là một ý tưởng tồi. Tỷ lệ truy cập bộ nhớ cache thấp hơn.
Thành thật mà nói, có những trình điều khiển khác có thể được lựa chọn, chẳng hạn như mongodb
.
Nhân tiện, tiếng Anh của tôi không tốt lắm, mong bạn thông cảm.