Home Backend Development PHP Tutorial The two pecl libraries memcache and memcached on php_PHP tutorial

The two pecl libraries memcache and memcached on php_PHP tutorial

Jul 21, 2016 pm 03:40 PM
memcache memcached pecl php and try Library yes use

I tried to use memcache before, but later I found that memcached supports the setMulti method, and I am going to switch to using the memcached library.

(I tried it. In fact, memcache has never supported multi-value sets, but it is not yet available in the documentation. From the changelog, it seems that it has been supported since version 3.0. The stable version may not have this feature.)

As for efficiency, it’s not clear how big the difference will be.

There is an article here that also says that memcached is based on libmemcached and may be better.

Finally, the php extension based on libmemached is released in pecl.

So, there are now two memcache clients on pecl. One is memcache developed entirely within the PHP framework, and the other is memecached using libmemcached.

As for functions, I have not seen libmemcached, but in theory, libmemcached, which is already very popular in other languages, should have more complete functions. As for program performance (memory and CPU usage), it’s hard to say. Although pecl::memcache is implemented natively, pecl::memached using libmemcached only supports OO interfaces, while pecl::memcache supports both OO and non-OO interfaces. The coexistence of sockets weighs it down.

Actually, these are not the most important. An obvious advantage of using libmemcached is that as the memcached server improves in the future, this lib will definitely follow suit soon. However, pecl::memcache may not be able to follow up on time.

pecl::memcached, another very commendable thing is that the flag is not set during operation. Instead, there is a unified setOption(). For this method, it is very worthwhile to switch from pecl::memcache to pecl::memcached. The specific interface can be found here: http://cvs.php.net/viewvc.cgi/pecl/memcached/memcached-api.php?view=markup

I mentioned in pecl-dev@ whether it can be made into a driver-based architecture. Like current MySQL, you can choose to use mysqlnd or libmysql as the underlying engine. But after thinking about it, I actually don't really support using such an architecture for memcached. It is different from MySQL.

Mysqlnd is developed as an engine rather than a new API, which allows a large number of applications to use the new engine without modifying database operations. If mysqlnd is a new extension, it will face a very difficult choice if it wants to be compatible with previous programs. Because so far, there are three official MySQL class sets that use libmysql and have different external interfaces. Mysqlnd is compatible with mysql, but it is not compatible with mysqli or pdo. Of course, for programs that use their own abstract database classes, this can be achieved by rewriting the class or changing the driver (php level) to achieve compatibility. But think about it, even if you use abstract libraries, there are so many database abstract libraries in the world. If you want everyone to be able to use nd, how many libraries must be modified and how many drivers must be added.

The situation with memcached is much simpler. Currently, the only one that has a closer relationship with the official website is pecl::memcache, and the interfaces are basically based on the memcached protocol, which is almost the same as libmemcache. They can actually be regarded as different drivers in an abstract class. So although there are two different sets of clients, there is almost no need to make any changes when replacing them. You only need to change the place where the class is initialized, and remove the flags of set/get and other methods, unless you use non-OO interface.

In addition, mysql is more complex than memcache in communication and data acquisition. nd can do some things that libmysql cannot do. For example, the buffer can be stored directly using the HashTable and zval inside PHP; for example, some structures that are persistent links can be cached more. (These are just my guesses, I have not read the code of mysqlnd)

Memcached manual:

http://cn.php.net/manual/en/book.memcached.php

Memcache manual:

http://cn.php.net/manual/en/book.memcache.php

Memcached protocol in Chinese and English

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/321430.htmlTechArticleI tried to use memcache before, but later found that memcached supports the setMulti method, and I am planning to switch to using the memcached library. (I tried it. In fact, memcache never supports multi-value sets, but the documentation still...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles