(Php 7> = 7.1.0, Php 8) session_gc - thực hiện bộ sưu tập rác dữ liệu phiên — Perform session data garbage collection session_gc (): int | false(): int|false GC dựa trên xác suất hoạt động phần nào nhưng nó có ít vấn đề. 1) Dữ liệu phiên của các trang web lưu lượng truy cập thấp có thể không bị xóa trong thời lượng ưa thích. 2) GC của các trang web giao thông cao có thể là GC quá thường xuyên. 3) GC được thực hiện theo yêu cầu của người dùng và người dùng sẽ gặp phải độ trễ của GC. Do đó, nên thực hiện GC định kỳ cho các hệ thống sản xuất bằng cách sử dụng, ví dụ: "Cron" cho các hệ thống giống như Unix. Đảm bảo vô hiệu hóa GC dựa trên xác suất bằng cách đặt phiên.GC_PROBILE thành 0. Chức năng này không có tham số. session_gc () Trả về số lượng dữ liệu phiên đã xóa để thành công, Trình xử lý lưu cũ không trả về số lượng dữ liệu phiên đã xóa, mà chỉ là cờ thành công/thất bại. Nếu đây là trường hợp, số lượng dữ liệu phiên bị xóa đã trở thành 1 bất kể dữ liệu thực sự bị xóa. Ví dụ #1 session_gc () Ví dụ cho người quản lý nhiệm vụ như Cronsession_gc() example for task managers like cron
session_start();// Executes GC immediately Ví dụ #2 session_gc () Ví dụ cho tập lệnh người dùng có thể truy cậpsession_gc() example for user accessible script
$gc_time = '/tmp/php_session_last_gc'; Xem thêm
Không có người dùng đóng góp ghi chú cho trang này. Từ hướng dẫn sử dụng PHP, phiên.gc_probability và session.gc_divisor mà GC sẽ xảy ra dựa trên xác suất này. Tôi nhận được điều đó. Điều tôi không rõ là liệu xác suất này có trên một phiên theo cơ sở phiên hay tổng thể hay không. Vì vậy, nếu xác suất của tôi là 1% (1/100) mà GC sẽ xảy ra, điều đó có nghĩa là nếu một phiên tiếp tục được mở rộng, mỗi lần có 1% thay đổi mà phiên cụ thể sẽ được làm sạch? Hoặc điều này có nghĩa là 1% của tất cả các phiên hiện có (cũng như các phiên mới) sẽ kích hoạt GC cho tất cả các phiên hiện có khác? Tôi khá chắc chắn đó là cái sau, tôi chỉ muốn chắc chắn. Mục đích của câu hỏi này là trên trang web của chúng tôi, tôi muốn người dùng có các phiên dài hạn (6 tháng). Nếu 1% của tất cả các phiên kích hoạt GC, thì điều đó sẽ loại bỏ hiệu quả mục đích của việc có phiên dài hạn đó, vì GC sẽ kết thúc xảy ra mỗi giờ hoặc hai giờ. Kara 6.01416 Huy hiệu vàng 50 Huy hiệu bạc57 Huy hiệu đồng16 gold badges50 silver badges57 bronze badges Hỏi ngày 19 tháng 10 năm 2011 lúc 22:26Oct 19, 2011 at 22:26 3 Mỗi khi tập lệnh PHP được thực thi và bắt đầu phiên, có khả năng nó sẽ quét qua thư mục phiên tiêu diệt phiên cũ. Dọn dẹp sẽ chỉ xóa các phiên không được truy cập trong một thời gian nhất định. Tuy nhiên, PHP không đảm bảo rằng phiên sẽ bị phá hủy trong thời gian đó. Chiến lược phiên dài hạn của bạn sẽ hoạt động tốt, nhưng bạn có thể muốn giảm 1% xuống còn 0,1% Một điều khác cần chú ý là hệ điều hành có thể làm sạch thư mục /TMP của bạn trong quá trình khởi động lại, vì vậy ngay cả khi PHP không làm điều đó. Đã trả lời ngày 19 tháng 10 năm 2011 lúc 22:32Oct 19, 2011 at 22:32 Romaninshromaninshromaninsh 10,5K4 Huy hiệu vàng47 Huy hiệu bạc70 Huy hiệu đồng4 gold badges47 silver badges70 bronze badges 5 Lần trước tôi nhìn vào nguồn mỗi cuộc gọi đến session_start () "cuộn xúc xắc" để nói, sử dụng ước số và xác suất. Nếu bạn nhấn, thì nó sẽ xóa tất cả các tệp khỏi thư mục
Tôi không biết có bao nhiêu tệp phiên mà bạn sẽ kết thúc việc quanh quẩn nếu bạn muốn chúng sống tối thiểu 6 tháng. Hãy xem xét nó có thể mất một chút thời gian để PHP để thống kê hàng ngàn tệp để xác định tuổi của họ. Có thể xem xét các tùy chọn khác để lưu trữ bền của dữ liệu này. Hoặc bạn có thể vô hiệu hóa PHP GC và chỉ chạy một công việc cron để xóa các tệp phiên cũ. Mặt khác, 1% yêu cầu sẽ kích hoạt GC và phải chờ PHP; Nói cách khác, nó có thể bị trễ. Đã trả lời ngày 19 tháng 10 năm 2011 lúc 23:04Oct 19, 2011 at 23:04 Dêgoat 30.7K7 Huy hiệu vàng70 Huy hiệu bạc96 Huy hiệu Đồng7 gold badges70 silver badges96 bronze badges Tôi không phải là một chuyên gia về điều này, nhưng từ việc đọc hướng dẫn, tôi sẽ thu hút sự chú ý của bạn đến một bối cảnh khác,
Vì vậy, nếu bạn đặt cài đặt này thành một giá trị phù hợp ( Đã trả lời ngày 19 tháng 10 năm 2011 lúc 22:32Oct 19, 2011 at 22:32 Lonesomedaylonesomedaylonesomeday 227K49 Huy hiệu vàng311 Huy hiệu bạc313 Huy hiệu Đồng49 gold badges311 silver badges313 bronze badges 3 |