search
HomeBackend DevelopmentPHP Tutorialphp5.3 installation libmemcached extension method and simple example_PHP tutorial

libmemcached is a memcached library, client library, client library implemented in C and C++ languages. It has low memory usage, thread safety, and provides comprehensive support for memcached functions. It also uses a variety of command line tools: memcat, memflush, memrm, memstat, and memslap (load generation). The library has been designed to allow different hashing methods for keys, split keys, and use unified hash distribution

The php memcache client based on libmemcached has many advantages

•hash consistent storage
•multi get/set
•Automatically hash the key to int, avoiding the limitation that the memcache key string is less than 255Byte by default
I haven’t configured a server for a long time. I always thought that libmemcached’s php memcached has been included in the basic installation package. In the end, I still need to compile it myself. There are many hidden pits in the entire installation process, and it took several attempts before I succeeded

Installation is divided into two steps

•Install libmemcached, targeting so and header files
•Install memcachedphp extensions
libmemcaced is divided into two major versions, 0.x and 1.x. The 1.x version started from 2011-09-28. Compilation is very troublesome and requires special configuration of gcc4.0 or above. Compile is extremely slow. The 0.x version is simple. There are many, the highest version is 0.53, so choose to install 0.53

The best products always appear in pairs. PHP’s memcahed also starts from 2.1.0, requiring libmemcached to be version 1.0.x

I use libmemcaced 0.53, and for php-memcahed I choose 2.0.0. Version maintenance of open source software is a mess

Install libmemcached

The code is as follows Copy code
wget https://launchpad.net/libmemcached /1.0/0.53/+download/libmemcached-0.53.tar.gz
 代码如下 复制代码
    wget https://launchpad.net/libmemcached/1.0/0.53/+download/libmemcached-0.53.tar.gz
    tar xvfz libmemcached-0.53.tar.gz
    cd libmemcached-0.53
    ./configure --prefix=/opt/libmemcached
    make && make install
tar xvfz libmemcached-0.53.tar.gz

cd libmemcached-0.53
./configure --prefix=/opt/libmemcached Make && make install

 代码如下 复制代码

    wget http://pecl.php.net/get/memcached-2.0.0.tgz
    tar zvxf memcached-2.0.0.tgz
    cd memcached-2.0.0/
    ./configure --enable-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/opt/libmemcached/
    make && make install

Install php extension
The code is as follows Copy code
wget http://pecl.php.net/get/memcached-2.0.0.tgz tar zvxf memcached-2.0.0.tgz cd memcached-2.0.0/ ./configure --enable-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/opt/libmemcached/ Make && make install


make install is to install memcached.so to ${php install dir}/extensions/no-debug-non-zts-20090626/. This directory varies with different PHP versions

The last step is to modify php.ini and add extension=memcached.so

We have already installed it and let’s take a look at a simple example

7 int main(int argc,char *argv[]) 8 {
The code is as follows
 代码如下 复制代码


#include
 2 #include
 3 #include
 4
 5 using namespace std;
 6
 7 int main(int argc,char *argv[])
 8 {
 9     //connect server
10     memcached_st *memc;
11     memcached_return rc;
12     memcached_server_st *server;
13     time_t expiration;
14     uint32_t  flags;
15
16     memc = memcached_create(NULL);
17     server = memcached_server_list_append(NULL,"localhost",11211,&rc);
18     rc=memcached_server_push(memc,server);
19     memcached_server_list_free(server);
20
21     string key = "key";
22     string value = "value";
23     size_t value_length = value.length();
24     size_t key_length = key.length();
25
26
27     //Save data
28     rc=memcached_set(memc,key.c_str(),key.length(),value.c_str(),value.length(),expiration,flags);
29     if(rc==MEMCACHED_SUCCESS)
30     {
31         cout 32     }
33
34     //Get data
35     char* result = memcached_get(memc,key.c_str(),key_length,&value_length,&flags,&rc);
36     if(rc == MEMCACHED_SUCCESS)
37     {
38         cout 39     }
40
41     //Delete data
42     rc=memcached_delete(memc,key.c_str(),key_length,expiration);
43     if(rc==MEMCACHED_SUCCESS)
44     {
45         cout 46     }
47
48     //free
49     memcached_free(memc);
50     return 0;
51 }
52
53

编译:g++ -o testmemcached testmemcached.cpp -lmemcached
运行:./testmemcached
结果:Save data:value sucessful!
      Get value:value sucessful!
      Delete key:key sucessful!

Copy code


#include 2 #include

3 #include

4

5 using namespace std;

6
9 //connect server 10 memcached_st *memc; 11 memcached_return rc; 12 memcached_server_st *server; 13 time_t expiration; 14 uint32_t flags; 15 16 memc = memcached_create(NULL); 17 server = memcached_server_list_append(NULL,"localhost",11211,&rc); 18 rc=memcached_server_push(memc,server); 19 memcached_server_list_free(server); 20 21 string key = "key"; 22 string value = "value"; 23 size_t value_length = value.length(); 24 size_t key_length = key.length(); 25 26 27 //Save data 28 rc=memcached_set(memc,key.c_str(),key.length(),value.c_str(),value.length(),expiration,flags); 29 if(rc==MEMCACHED_SUCCESS) 30 { 31          cout 32 } 33 34 //Get data 35 char* result = memcached_get(memc,key.c_str(),key_length,&value_length,&flags,&rc); 36 if(rc == MEMCACHED_SUCCESS) 37 { 38           cout 39 } 40 41 //Delete data 42 rc=memcached_delete(memc,key.c_str(),key_length,expiration); 43 if(rc==MEMCACHED_SUCCESS) 44 { 45          cout 46 } 47 48 //free 49 memcached_free(memc); 50 return 0; 51} 52 53 Compile: g++ -o testmemcached testmemcached.cpp -lmemcached Run: ./testmemcached Result: Save data:value sucessful! Get value:value sucessful! Delete key:key sucessful! Notes It should be noted that libmemcached is not libmemcache. They are two different client libraries. The former is currently under active development, while the latter has not been updated for a long time. Memcached is a high-performance, distributed memory object caching system that reduces database access through memory data caching, thereby increasing the speed of dynamic content application websites. The official development and release of memcached is only the server-side program of the application. It releases the server-side connection reading and writing protocol. The client-side implementation depends on the dynamic scripts used by the dynamic content application website. There are many kinds. The specific list can be Check out the official website.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/629821.htmlTechArticlelibmemcached is a memcached library, client library, client library implemented in C and C++ languages, with low memory occupancy rate, thread safety, and provides full support for memcached functions. ...
Statement
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
What is the best way to send an email using PHP?What is the best way to send an email using PHP?May 08, 2025 am 12:21 AM

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

Best Practices for Dependency Injection in PHPBest Practices for Dependency Injection in PHPMay 08, 2025 am 12:21 AM

The reason for using Dependency Injection (DI) is that it promotes loose coupling, testability, and maintainability of the code. 1) Use constructor to inject dependencies, 2) Avoid using service locators, 3) Use dependency injection containers to manage dependencies, 4) Improve testability through injecting dependencies, 5) Avoid over-injection dependencies, 6) Consider the impact of DI on performance.

PHP performance tuning tips and tricksPHP performance tuning tips and tricksMay 08, 2025 am 12:20 AM

PHPperformancetuningiscrucialbecauseitenhancesspeedandefficiency,whicharevitalforwebapplications.1)CachingwithAPCureducesdatabaseloadandimprovesresponsetimes.2)Optimizingdatabasequeriesbyselectingnecessarycolumnsandusingindexingspeedsupdataretrieval.

PHP Email Security: Best Practices for Sending EmailsPHP Email Security: Best Practices for Sending EmailsMay 08, 2025 am 12:16 AM

ThebestpracticesforsendingemailssecurelyinPHPinclude:1)UsingsecureconfigurationswithSMTPandSTARTTLSencryption,2)Validatingandsanitizinginputstopreventinjectionattacks,3)EncryptingsensitivedatawithinemailsusingOpenSSL,4)Properlyhandlingemailheaderstoa

How do you optimize PHP applications for performance?How do you optimize PHP applications for performance?May 08, 2025 am 12:08 AM

TooptimizePHPapplicationsforperformance,usecaching,databaseoptimization,opcodecaching,andserverconfiguration.1)ImplementcachingwithAPCutoreducedatafetchtimes.2)Optimizedatabasesbyindexing,balancingreadandwriteoperations.3)EnableOPcachetoavoidrecompil

What is dependency injection in PHP?What is dependency injection in PHP?May 07, 2025 pm 03:09 PM

DependencyinjectioninPHPisadesignpatternthatenhancesflexibility,testability,andmaintainabilitybyprovidingexternaldependenciestoclasses.Itallowsforloosecoupling,easiertestingthroughmocking,andmodulardesign,butrequirescarefulstructuringtoavoidover-inje

Best PHP Performance Optimization TechniquesBest PHP Performance Optimization TechniquesMay 07, 2025 pm 03:05 PM

PHP performance optimization can be achieved through the following steps: 1) use require_once or include_once on the top of the script to reduce the number of file loads; 2) use preprocessing statements and batch processing to reduce the number of database queries; 3) configure OPcache for opcode cache; 4) enable and configure PHP-FPM optimization process management; 5) use CDN to distribute static resources; 6) use Xdebug or Blackfire for code performance analysis; 7) select efficient data structures such as arrays; 8) write modular code for optimization execution.

PHP Performance Optimization: Using Opcode CachingPHP Performance Optimization: Using Opcode CachingMay 07, 2025 pm 02:49 PM

OpcodecachingsignificantlyimprovesPHPperformancebycachingcompiledcode,reducingserverloadandresponsetimes.1)ItstorescompiledPHPcodeinmemory,bypassingparsingandcompiling.2)UseOPcachebysettingparametersinphp.ini,likememoryconsumptionandscriptlimits.3)Ad

See all articles

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

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.