Cơ chế nhớ bộ đệm (Memcached, Redis, APC)

Cơ chế bộ nhớ đệm

Các PHP lợi thế từ một cộng đồng rất lớn đã làm công việc phù hợp trên hầu hết các cơ chế bộ nhớ đệm phổ biến hiện nay. FRAPI mất lợi thế của các phần mở rộng và công nghệ phần mềm thời gian đó đã được đầu tư bằng cách cho các nhà phát triển của nó lựa chọn sử dụng các cơ chế của sự lựa chọn của họ. Những adapter này được xây dựng trong FRAPI và yêu cầu chỉ có một đường duy nhất của sự thay đổi mã để các nhà phát triển để được tham gia đầy đủ lợi thế của cơ chế bộ nhớ đệm yêu thích của họ.

Tài liệu này sẽ hướng dẫn bạn thông qua sự tinh tế trong việc cấu hình bộ chuyển đổi bộ nhớ cache của bạn:

Sự hiểu biết khái quát

Để sử dụng bộ chuyển đổi bộ nhớ đệm của bạn lựa chọn, FRAPI đòi hỏi các nhà phát triển để tự sửa đổi các dòng cấu hình duy nhất mà FRAPI hiện có. Các tập tin cấu hình nằm trong FRAPI_PATH/src/frapi/custom/AllFiles.php . Khi bạn mở tập tin đó, người ta có thể nhận thấy sự liên tục gàng chỉ trong tập tin gọi là FRAPI_CACHE_ADAPTER . Để sử dụng các cơ chế bộ nhớ đệm của sự lựa chọn của bạn, bạn sẽ cần phải sửa đổi này là một trong hai apc, memcached, redis, wincache, zenddisk, zendshm hay giả.

Xin lưu ý rằng trong các phiên bản tương lai của FRAPI, giao diện quản trị sẽ cho phép các nhà phát triển để xác định bộ điều hợp bộ nhớ đệm và máy chủ của họ.

 

Sử dụng APC như cơ chế bộ nhớ đệm của bạn

 

Bộ nhớ cache Cow

Nếu bạn đã được khoảng PHP trong một thời gian, có lẽ bạn đã nghe nói về APC, Alternative PHP Cache. APC là một bộ nhớ cache opcode có thể tăng tốc độ của các ứng dụng PHP của bạn, bằng cách cache cả mã PHP và biến người dùng. Thêm APC để một ứng dụng thường là kết quả trong cải thiện thời gian phản ứng ứng dụng, giảm tải máy chủ và người dùng hạnh phúc hơn.

Bắt đầu

Đầu tiên, một mô tả nhanh chóng của những gì là APC và làm thế nào nó hoạt động.

Như bạn có thể đã biết, PHP là một ngôn ngữ diễn giải (không giống như, nói, Java hay C ++).Bất cứ khi nào một khách hàng yêu cầu một trang PHP, các máy chủ sẽ đọc trong mã nguồn của trang, biên dịch nó thành bytecode và sau đó thực hiện nó. Trong kịch bản bình thường, quá trình này được thực hiện trên tất cả các yêu cầu … mặc dù PHP là rất nhanh chóng mà có thể bạn sẽ không chú ý đến nó!

Nếu bạn đang chạy một ứng dụng hoặc trang web có hàng trăm hoặc hàng ngàn yêu cầu sắp tới trong mỗi phút, tuy nhiên, bạn sẽ muốn nâng cao tốc độ càng nhiều càng tốt. Và đó là nơi APC đến. Theo lời của trang web của mình , APC là “một khuôn khổ mở, miễn phí, và mạnh mẽ cho bộ nhớ đệm và tối ưu hóa mã PHP trung gian.” Rất đơn giản, APC cache sản lượng biên dịch của mỗi PHP script chạy và reuses nó cho yêu cầu tiếp theo. Điều này làm giảm chu kỳ thời gian và xử lý cần thiết để đáp ứng đầy đủ yêu cầu mỗi ngày, dẫn đến hiệu suất tốt hơn và thời gian đáp ứng thấp hơn.

Liệu nó có làm việc? Bạn đặt cược (có một số tiêu chuẩn ở cuối bài viết). Và thật dễ dàng để thiết lập như là tốt. Để cài đặt nó, sử dụng pecl lệnh, như hình dưới đây:

Bộ cài đặt PECL bây giờ sẽ tải về mã nguồn, biên dịch và cài đặt nó vào vị trí thích hợp trên hệ thống của bạn.

Ngoài ra, tự tải về các kho lưu trữ mã nguồn (v3.1.4 tại thời điểm này) và biên dịch nó thành một module PHP có thể nạp được với phpize:

Một Galaxy Far, Far Away

Bây giờ bạn có một ý tưởng tốt hơn về cách APC làm việc, hãy viết một số mã. Caching biến dùng trong APC chủ yếu được thực hiện thông qua các apc_add ()apc_fetch ()phương pháp, cho phép biến để thêm vào, và lấy ra từ bộ nhớ cache tương ứng. Dưới đây là một ví dụ đơn giản để minh họa:

A-rray của Sunshine

Ngoài chuỗi bộ nhớ đệm, APC cũng cho phép bạn cache mảng, đối tượng, chức năng và tài liệu tham khảo. Hãy xem xét ví dụ sau đây, trong đó lưu trữ một mảng các giá trị:

Bạn cũng có thể cache lồng nhau hoặc các mảng đa chiều, như hình dưới đây:

Một Bài Học Object

Ngoài bộ nhớ đệm mảng, APC cũng cho phép bạn lưu trữ các đối tượng trong bộ nhớ cache.Để minh họa, hãy xem xét các ví dụ tiếp theo, khởi tạo một đối tượng người dùng đơn giản, lưu trữ nó trong bộ nhớ cache, và sau đó lấy nó trở lại từ bộ nhớ cache:

Một phương pháp khác để đi đến cùng một kết quả là để serialize các đối tượng thành một chuỗi, và sau đó lưu trữ các chuỗi trong bộ nhớ cache thay vì đối tượng. Đây là những gì mà có thể trông giống như:

Bắt Closure

Bạn cũng có thể sử dụng APC cache tài liệu tham khảo và (với một chút tinh chỉnh) các chức năng ẩn danh. Hãy nhìn xem:

Chức năng ẩn danh hoặc đóng cửa , mới trong PHP 5.3, cung cấp một cách dễ dàng để xác định chức năng “on the fly”. Theo mặc định, tuy nhiên, đóng cửa có thể không được lưu trữ với APC, như lớp Closure không thực hiện tuần tự. Dưới đây là một ví dụ đơn giản để minh họa các vấn đề:

Giải pháp là gì? Vâng, Jeremy Lindblom đã mở rộng các lớp học đóng cửa và tạo ra một lớp SuperClosure tùy chỉnh hỗ trợ cả tuần tự và phản ánh. Nếu bạn thực hiện việc đóng cửa của bạn bằng cách sử dụng lớp này, bạn sẽ có thể nhớ cache nó. Dưới đây là một phiên bản của kịch bản trước đó chứng tỏ:

Utility Belt

Việc gia hạn APC cũng đi kèm với một vài phương pháp khác chú ý. Ví dụ, có những apc_inc ()apc_dec () phương pháp, có thể được sử dụng để tăng hoặc giảm một giá trị được lưu trữ tương ứng:

Các apc_bin_dump () phương pháp bãi các nội dung hiện tại của bộ nhớ cache ở dạng nhị phân, trong khi apc_bin_load () phương pháp nạp một bãi chứa nhị phân vào cache. Hãy xem xét ví dụ sau đây, minh họa:

Các apc_clear_cache () phương pháp có thể được sử dụng để xóa bộ nhớ cache opcode hoặc bộ nhớ cache dùng:

Các apc_cache_info () phương pháp trình bày thông tin về tình trạng bộ nhớ cache hiện tại và cấp phát bộ nhớ:

Tweet Tweet

Với tất cả các thông tin cơ bản này trong tay, chúng ta hãy thử APC với một ví dụ thế giới thực.Kịch bản tiếp theo này sử dụng APC để cache các kết quả của một tìm kiếm Twitter:

Mặc dù chiều dài của nó, điều này thực sự là một kịch bản rất đơn giản. Nó bắt đầu bằng cách tạo ra một hình thức tìm kiếm cho người dùng nhập cụm từ tìm kiếm vào. Sau khi gửi đơn đăng ký, nó kết nối đến các Search API Twitter , lấy ra một danh sách Atom với định dạng của kết quả tìm kiếm phù hợp với các thuật ngữ tìm kiếm, quy trình thức ăn Atom và đưa ra kết quả cuối cùng là một bảng HTML. Các kết quả tìm kiếm được lưu trữ trong năm phút, do đó chúng có thể được sử dụng để tìm kiếm tiếp theo chứa các thuật ngữ tìm kiếm tương tự. Chú ý rằng mỗi truy vấn tìm kiếm được gán một định danh duy nhất trong bộ nhớ cache APC, bằng cách sử dụng chữ ký MD5 của nó như là chìa khóa.

Bạn sẽ nhận ra rằng có hai cấp độ của bộ nhớ đệm trong kịch bản này. Đầu tiên, bộ nhớ cache opcode của APC được tự động cache bytecode biên soạn kịch bản, và sử dụng bytecode này lưu lại để yêu cầu tiếp theo thay vì biên dịch lại nó một lần nữa. Thứ hai, bộ nhớ cache dùng của APC là bộ nhớ đệm kết quả của mỗi lần tìm kiếm Twitter, và tái sử dụng các kết quả này (thay vì kết nối tới Twitter lại lần nữa) cho các tìm kiếm tiếp theo chứa các thuật ngữ truy vấn tương tự. Kết quả là, tìm kiếm tiếp theo cho cùng kỳ hạn sẽ được phục vụ từ bộ nhớ cache, dẫn đến giảm đáng kể trong thời gian tải (thử nó cho chính mình và nhìn thấy).

Trong Frame

Nếu bạn là một fan hâm mộ của Zend Framework, bạn sẽ rất vui khi biết rằng Zend_Cache đi kèm với xây dựng trong hỗ trợ cho APC, cho phép bạn bắt đầu sử dụng nó ra khỏi hộp. Để minh họa, xem xét các điều khiển Zend Framework sau, mà sửa lại ví dụ trước đó vào một bộ điều khiển Zend Framework:

Ở đây, searchAction () phương pháp đầu tiên thiết lập các dụ Zend_Cache, với lối Core và các phụ trợ APC. Các đối tượng hình thức, mà kéo dài Zend_Form, sau đó được bổ sung vào xem, cùng với tất cả các trình xác nhận và bộ lọc cần thiết, và xem là ra.

Khi người dùng gửi các hình thức, điều khiển chuyển trở lại để điều khiển hành động, trong đó kiểm tra đầu vào và lấy các giá trị lọc. Sau đó nó sẽ kiểm tra bộ nhớ cache để xem kết quả tìm kiếm đã tồn tại cho thuật ngữ tìm kiếm này, và sử dụng nó nếu có; nếu không, nó kết nối đến các Search API Twitter, lấy một tập hợp kết quả, và lưu nó vào bộ nhớ cache để sử dụng trong tương lai. Kết quả sau đó kết xuất thông qua các kịch bản xem. Trên các tìm kiếm tiếp theo cho cùng kỳ hạn, tập kết quả được lưu trữ sẽ được sử dụng, sản xuất một phản ứng nhanh hơn nhiều.

Dưới đây là các mã cho các kịch bản xem:

Đó là tất cả tôi có cho thời điểm này. Tôi hy vọng hướng dẫn này đưa cho bạn một số cái nhìn sâu sắc vào cách APC hoạt động, và làm thế nào bạn có thể sử dụng nó để cải thiện hiệu suất của các ứng dụng PHP của bạn. Hãy thử nó ra lần sau khi bạn có một vấn đề tối ưu hóa hiệu suất, và xem những gì bạn nghĩ!

Sử dụng memcached như cơ chế bộ nhớ đệm của bạn

memcached là một hệ thống lưu trữ bản sao các đối tượng (objects) và dữ liệu được truy cập nhiều lần để tăng tốc độc truy xuất. Nó thường được sử dụng để tối ưu hóa việc tải dữ liệu từ cơ sở dữ liệu cho các ứng dụng trên nền web. Vào lúc đầu, hệ thống memcached được phát triển bởi Danga Interactive và dùng cho LiveJournal. Sau đó memcachedtrở nên phổ biến và được dùng trên các trang web khác.

Memcached là một thứ đơn giản, có khả năng mở rộng cao, dựa trên các khóa lưu trữ các giá trị và đối tượng bất cứ khi nào bộ nhớ RAM còn khả dụng,phục vụ cho việc truy cập được nhanh nhất, mà không phải truy cập vào CSDL hay tài nguyên trên đĩa cứng.

Nếu cơ chế bộ nhớ đệm yêu thích của bạn là memcached, bạn có thể sử dụng “memcached” caching adapter với FRAPI. Hiện nay, các bộ chuyển đổi bộ nhớ đệm memcached chỉ kết nối với localhost theo mặc định. Nó hiện đang là nhà không thể FRAPI kết nối với một memcached-cluster cho các cấu hình và bộ nhớ đệm bên trong. Đây là một tính năng sắp tới trong tương lai ngắn.

Nó có thể kết nối thủ công tới một cụm máy chủ memcached trong mô hình của bạn như thế này:

 

 

Các FRAPI memcached bộ chuyển đổi sử dụng PHP memcached (http://php.net/memcached) mở rộng. Để cài đặt phần mở rộng memcached, xin vui lòng thực hiện theo các hướng dẫn: http://php.net/manual/en/memcached.installation.php .

Một khi bạn đã hoàn thành việc cài đặt các phần mở rộng và bạn khởi động lại máy chủ web của bạn, thiết lập của bạn FRAPI_CACHE_ADAPTER liên tục để memcached và FRAPI bây giờ sẽ được tương tác với máy chủ memcached trên 127.0.0.1 và port 11211.

Lưu ý rằng nó cũng có thể sử dụng memcache (http://php.net/memcache) mở rộng. Để sử dụng memcache adapter, bạn sẽ cần phải sửa đổi của bạn FRAPI_CACHE_ADAPTER không đổi và đặt nó vào memcache .

Hin ti bn không th thiết lp các thông tin cm t giao din qun tr nhưng nó là mt tính năng lên kế hoch. Nếu bạn muốn thay đổi vị trí của các máy chủ mặc định, bạn phải sửa đổi các tập tin  FRAPI_PATH/src/frapi/library/Frapi/Cache/Adapter/Memcached.php để trỏ đến máy chủ của riêng bạn. Một lần nữa, điều quan trọng là phải lưu ý rằng tính năng này sẽ được thêm vào trong giao diện quản trị.

Lưu ý rằng tất cả các chức năng được mô tả trên trang này chỉ là giả. Cuộc gọi Memcached và các ngôn ngữ lập trình có thể thay đổi dựa trên các API được sử dụng.

Chuyển đổi cơ sở dữ liệu hoặc đối tượng sáng tạo các truy vấn để sử dụng Memcached là đơn giản. Thông thường, khi sử dụng các truy vấn cơ sở dữ liệu thẳng, ví dụ đoạn mã sẽ như sau:

Sau khi chuyển đổi để Memcached, cùng một cuộc gọi có thể trông giống như sau:

Client đầu tiên sẽ kiểm tra xem một giá trị Memcached với duy nhất phím “userrow: userid” tồn tại, nơi userid là một số số. Nếu kết quả không tồn tại, nó sẽ chọn từ cơ sở dữ liệu như bình thường, và thiết lập các khóa duy nhất sử dụng các API Memcached thêm chức năng gọi.

Tuy nhiên, nếu chỉ gọi API này đã được sửa đổi, máy chủ sẽ kết thúc lấy dữ liệu không chính xác sau đây bất kỳ cơ sở dữ liệu cập nhật hành động: “xem” Memcached của dữ liệu sẽ trở nên lỗi thời. Vì vậy, ngoài việc tạo ra một “thêm” cuộc gọi, cuộc gọi cập nhật cũng sẽ được cần thiết sử dụng các chức năng thiết lập Memcached.

Cuộc gọi này sẽ cập nhật các dữ liệu hiện đang lưu trữ để phù hợp với các dữ liệu mới trong cơ sở dữ liệu, giả sử các truy vấn cơ sở dữ liệu thành công. Một phương pháp khác là để làm mất hiệu lực bộ nhớ cache với các chức năng xóa Memcached, để đọc tiếp theo dẫn đến lỡ cache. Hành động tương tự sẽ cần phải được thực hiện khi các bản ghi cơ sở dữ liệu đã bị xóa, để duy trì hoặc là một bộ nhớ cache chính xác hoặc không đầy đủ.

Sử dụng Redis như cơ chế bộ nhớ đệm của bạn

Redis là gì?

Redis tạo ra bởi Salvatore Sanfilippo là một mã nguồn mở, trong bộ nhớ máy chủ cấu trúc dữ liệu với bộ nhớ cache chính-trị tiên tiến và lưu trữ, thường được gọi là một cơ sở dữ liệu NoSQL. Nó cũng được gọi là một máy chủ cấu trúc dữ liệu, vì nó có thể lưu trữ các chuỗi, băm, danh sách, tập, sắp xếp bộ, và nhiều hơn nữa.

Bản chất của một cửa hàng giá trị quan trọng là khả năng lưu trữ một số dữ liệu, được gọi là một giá trị bên trong một khóa. Những thông tin này sau đó có thể được lấy ra chỉ khi chúng ta biết chính xác các phím được sử dụng để lưu trữ nó.

Cách sử dụng của Redis

 

Salvatore Sanfilippo (tác giả của Redis) cho biết Redis có thể được sử dụng để thay thế một cơ sở dữ liệu RDBMS. Bây giờ, mặc dù không có gì là không thể, tôi nghĩ rằng nó sẽ là một ý tưởng tồi, bởi vì sử dụng một cửa hàng trọng điểm có giá trị cho những thứ, giống như một tìm kiếm toàn văn bản, có thể là đau đớn. Đặc biệt, khi bạn xem xét việc tuân thủ ACID và đồng bộ dữ liệu trong một cửa hàng trọng giá trị: đau đớn.

Dưới đây chỉ là một vài công dụng của Redis, dù có nhiều hơn này.

  • Caching có thể được sử dụng trong cùng một cách thức như memcached.
  • Leaderboards hoặc các vấn đề liên quan.
  • Đếm thứ.
  • Phân tích thời gian thực.
  • Xóa và lọc.
  • Hiển thị danh sách item mới nhất tại trang chủ của bạn.

Mục đích của Điều này

Mục đích của bài viết này không phải là để cho bạn cú pháp của Redis , trong bài viết này, chúng ta sẽ tìm hiểu làm thế nào để sử dụng Redis trong PHP.

Cài đặt Redis trên Linux

Để cài đặt Redis trên Linux, là khá đơn giản, nhưng bạn sẽ cần TCL cài đặt nếu bạn không có cài đặt TCL. Bạn chỉ có thể chạy:

Để cài đặt Redis:

Lưu ý: 2.8.19 nên được thay thế bằng phiên bản ổn định mới nhất của Redis.

Tất cả những chương trình Redis được lưu trong thư mục SRC. Để bắt đầu máy chủ đơn giản:

Cài đặt trên Windows

Cài đặt Redis trên Windows là rất dễ dàng, chỉ cần truy cập https://github.com/rgl/redis/downloads , tải về một gói, và cài đặt.

Cài đặt Predis một Redis Client for PHP

Predis là một Redis Client for PHP. Nó cũng được viết và có nhiều sự hỗ trợ từ cộng đồng. Để sử dụng Predis chỉ clone kho vào thư mục làm việc của bạn:

Kết nối với Redis

Đầu tiên, chúng tôi sẽ yêu cầu các Redis Autoloader và đăng ký nó. Sau đó chúng tôi sẽ quấn client trong một khối try catch. Cài đặt kết nối để kết nối với Redis trên một máy chủ địa phương là khác nhau từ kết nối đến một máy chủ từ xa.

Bây giờ chúng ta đã kết nối thành công đến máy chủ Redis, chúng ta hãy bắt đầu sử dụng Redis.

Redis kiểu dữ liệu

Redis hỗ trợ một loạt các kiểu dữ liệu và bạn có thể tự hỏi những gì một cửa hàng trọng điểm có giá trị NoSQL đã làm với các kiểu dữ liệu? Vâng, các kiểu dữ liệu giúp các nhà phát triển lưu trữ dữ liệu một cách có ý nghĩa và có thể thực hiện truy xuất dữ liệu nhanh hơn. Dưới đây là một số các kiểu dữ liệu được hỗ trợ bởi Redis:

  • String: Tương tự như các chuỗi trong PHP.
  • Danh sách: Tương tự như một mảng một chiều duy nhất trong PHP. Bạn có thể đẩy, pop, ca và unshift, các yếu tố đó được xếp theo thứ tự hoặc chèn FIFO (vào trước, ra trước).
  • Hash: Maps giữa các trường và chuỗi giá trị chuỗi. Họ là những loại dữ liệu hoàn hảo để đại diện cho các đối tượng (ví dụ: Một người dùng với một số lĩnh vực như tên, họ, và vv).
  • Set: Tương tự như liệt kê, ngoại trừ việc nó không có trật tự và mỗi yếu tố có thể xuất hiện một lần duy nhất.
  • Set sắp xếp: Tương tự như Redis lập với một tính năng độc đáo của các giá trị được lưu trữ trong bộ. Sự khác biệt là mỗi thành viên của một Set Sorted là liên kết với điểm số, dùng để đặt các bộ từ các điểm nhỏ nhất đến lớn nhất.

Những người khác là bitmap và hyperloglogs, nhưng họ sẽ không được thảo luận trong bài viết này, vì họ là khá dày đặc.

Getters and Setters

Trong Redis, các lệnh quan trọng nhất được SET , GETtồn tại . Những lệnh này được sử dụng để lưu trữ, kiểm tra, và lấy dữ liệu từ một máy chủ Redis. Cũng giống như các lệnh, các lớp Predis có thể được sử dụng để thực hiện các hoạt động Redis bằng các phương pháp có tên tương tự như lệnh. Ví dụ như:

Increments and Decrements

INCRDECR là lệnh được sử dụng để hoặc khi tăng hoặc giảm giá trị.

Chúng tôi cũng có thể làm tăng giá trị của khóa truy cập bởi các giá trị số nguyên lớn hơn hoặc chúng ta có thể làm giảm giá trị của khóa truy cập với cácINCRBYDECRBY lệnh.

Làm việc với danh sách

Có một vài cơ bản Redis lệnh để làm việc với các danh sách và họ là:

  • LPUSH: thêm một phần tử vào đầu danh sách
  • RPUSH: thêm một yếu tố để kết thúc một danh sách
  • LPOP: loại bỏ các yếu tố đầu tiên từ một danh sách và trả về nó
  • RPOP: loại bỏ các yếu tố cuối cùng từ một danh sách và trả về nó
  • LLEN: được độ dài của một danh sách
  • LRANGE: nhận được một loạt các yếu tố từ một danh sách

Danh sách đơn giản sử dụng:

Làm việc với Hashes

Một băm trong Redis là một bản đồ giữa các giá trị một trường chuỗi và chuỗi, giống như một mối quan hệ một-nhiều. Các lệnh liên quan đến băm trong Redis là:

  • HSET: đặt một giá trị quan trọng về các hash
  • HGET: nhận được một giá trị quan trọng về các hash
  • HGETALL: được tất cả các giá trị quan trọng từ các hash
  • HMSET: khối lượng giao nhiều-giá trị băm
  • HDEL: xóa một khóa từ đối tượng
  • HINCRBY: số gia một khóa-giá trị từ băm với một giá trị nhất định.

Làm việc với sets

Danh sách các lệnh liên quan đến bộ bao gồm: – Sadd: bổ sung thêm một số tồn tại của các giá trị để chìa khóa – SREM: loại bỏ số N của các giá trị từ một khóa – SISMEMBER: nếu một giá trị tồn tại – SMEMBERS: danh sách các giá trị trong tập.

Đặt hạn sử dụng và Persistence

Kể từ Redis là một cửa hàng dữ liệu trong bộ nhớ, bạn có thể sẽ không lưu trữ dữ liệu mãi mãi. Vì vậy, điều này đưa chúng ta đến EXPIRE , EXPIREAT , TTL ,vẫn tồn tạiEXPIRE: đặt thời gian hết hạn, chỉ trong vài giây, cho các khóa sau đó nó sẽ bị xóa – EXPIREAT: Thiết lập một thời gian hết hạn sử dụng Unix timestamps cho phím sau đó nó sẽ bị xóa – TTL: được thời gian còn lại để lại cho một key hết hạn – vẫn tồn tại: làm cho một phím cuối cùng mãi mãi bằng cách loại bỏ các bộ đếm thời gian hết hạn từ khóa.

Tương lai của Redis

Redis là một sự thay thế tốt hơn cho memcached, vì nó là nhanh, độ co giãn tốt (hỗ trợ nhân rộng master-slave), hỗ trợ các kiểu dữ liệu mà nhiều người (Facebook, Twitter, Instagram) đã giảm memcached cho Redis. Redis là bản vá lỗi mã nguồn mở và nhiều lập trình viên sáng giá đến từ các cộng đồng mã nguồn mở đã đóng góp.

 

 

 

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">