2012-07-27 31 views
7

Tôi có một trang nơi vài nghìn người dùng có thể nhấn một phương thức cùng một lúc. Tôi có mã sau đây, nơi tôi kết nối mọi lúc. Vì điều này sẽ đi đến một máy chủ memcache riêng biệt này sẽ gây ra suy thoái là có một cách để kết nối chỉ một lần và tái sử dụng kết nối đó? Tôi có phải đóng kết nối sau mỗi yêu cầu không?PHP memcache kết nối

$primary_connected = $memcache_primary->connect($primary_memcache_server, 11211); 
if($primary_connected){ 
     $data = $memcache_primary->get($key); 
     if ($data != NULL) { 
      return data; 
     } 
} 
else{ 
/////Get data from database 
} 

Trả lời

3

Nếu bạn đang sử dụng lớp PHP memcached (một với d ở cuối dòng, không memcache) sau đó có, bạn có thể mở một kết nối liên tục.

Bạn có thể chuyển ID liên tục cho hàm tạo sẽ mở kết nối liên tục và các phiên bản tiếp theo sử dụng cùng ID liên tục sẽ sử dụng kết nối đó.

$memcached = new Memcached('method_name_or_persistent_identifier'); 
$memcached->addServer(...); 
// use it 

Hy vọng điều đó sẽ hữu ích.

Xem Memcached::__construct() để biết thêm chi tiết.

+0

Cảm ơn! Tôi đã sử dụng memcache và không ghi nhớ. Tôi sẽ chuyển sang memcached ngay bây giờ vì chúng cho phép kết nối liên tục. Được memcached chỉ là một phiên bản mới của memcache? Cảm ơn –

+1

Có, 'Memcached' chỉ là một phiên bản mới hơn hỗ trợ nhiều tính năng hơn như kết nối liên tục và mã thông báo CAS. Xem [câu hỏi này và câu trả lời được chấp nhận] (http://stackoverflow.com/questions/1442411/using-memcache-vs-memcached-with-php) để biết thêm chi tiết. Sử dụng phần mở rộng 'Memcached' nếu có thể và không phải' memcache' – drew010

+0

Cảm ơn bạn. Một câu hỏi nữa. Nếu tôi sử dụng http://php.net/manual/en/memcache.pconnect.php sẽ được gây ra bất kỳ vấn đề? Kể từ khi tôi đã thực hiện memcache và muốn thấy sự khác biệt hiệu suất sau khi cài đặt memcached. Nếu tôi không thấy bất kỳ lớn lợi thế với nó theo cách tôi đang sử dụng tôi sẽ đi với memcache. –