


The two pecl libraries memcache and memcached on php_PHP tutorial
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

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



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

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

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

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

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,

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

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 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.
