Home >Backend Development >PHP Tutorial >php5.3 installation libmemcached extension method and simple example_PHP tutorial

php5.3 installation libmemcached extension method and simple example_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:08:361091browse

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<<"Save data:"< 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<<"Get value:"< 39     }
40
41     //Delete data
42     rc=memcached_delete(memc,key.c_str(),key_length,expiration);
43     if(rc==MEMCACHED_SUCCESS)
44     {
45         cout<<"Delete key:"< 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<<"Save data:"<

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