(3)、使用telnet命令测试memcached的使用
Memcached提供一组基本命令用于基于命令行调用其服务或查看服务器状态等。
查看memcached的内部状态信息
首先是要telnet连接到memcached,然后再输入stats可以获取其memcached各种信息:
# telnet 127.0.0.1 11211
stats
STAT pid 14381
STAT uptime 307
STAT time 1427814867
STAT version 1.4.22
STAT libevent 2.0.22-stable
STAT pointer_size 64
STAT rusage_user 0.000000
STAT rusage_system 0.002999
STAT curr_connections 10
STAT total_connections 11
STAT connection_structures 11
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 0
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 7
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT malloc_fails 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT lrutail_reflocked 0
END
输入stats slabs或stats items可以获取其缓存相关信息,如:
stats slabs
STAT active_slabs 0
STAT total_malloced 0
END
stats items
END
测试,使用add命令添加数据
add命令语法格式:
add keyname flag timeout datasize
如:
add mykey 0 10 12
Hello world!
使用get命令获取指定key所对应的数据
get命令语法格式为:
get keyname
如:get mykey
VALUE mykey 0 12
Hello world!
END
(4)、memcached的常用选项说明
-l :指定进程监听的地址;
-d: 以守护进程方式在后台运行;
-u :以指定的用户身份运行memcached进程;
-m :用于缓存数据的最大内存空间,单位为MB,默认为64MB;
-c :最大支持的并发连接数,默认为1024;
-p : 指定监听的TCP端口,默认为11211;
-U :指定监听的UDP端口,默认为11211,0表示关闭UDP端口;
-t :用于处理入站请求的最大线程数,仅在memcached编译时开启了支持线程才有效;
-f :设定Slab Allocator定义预先分配内存空间大小固定的块时使用的增长因子;
-M:当内存空间不够使用时返回错误信息,而不是按LRU算法利用空间;
-n: 指定最小的slab chunk大小;单位是字节;
-S: 启用sasl进行用户认证;
-s:监听的本地套接字
注意:配到这里,memcached服务器已经搭建好了,下面还需配置php,让其支持memcached功能。上面的部分和下面的部分不是在同一个服务器上进行的。
(在另一台服务器上的配置) 五、安装Memcache的PHP扩展,使用php支持memcached功能
默认情况下。php从数据库获得数据并不会自动缓存到memcache中,需要程序员在开发时,自行调用memcache api,这样才使得memcache功能生效。要想让php从数据库获取到的数据缓存到memcache中,需要安装php的memcache扩展。这样当php需要使用数据时,首先从memcache中查找,如果在memcache中找不到,然后再去数据库查询,并将查询的结果缓存在memcache中,然后在返回给应用程序。
对于php的安装这里不再详述了。(我这台服务器上已经安装了lnmp)
①安装PHP的memcache扩展
php的memcache扩展下载地址:http://pecl.php.net/package/memcache
# tar xf memcache-2.2.4.tgz
# cd memcache-2.2.4
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache
# make && make install
上述安装完后会有类似以下的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
②编辑vim /etc/php.d/memcache.ini,添加如下行信息:
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/memcache.so
而后对memcached功能进行测试,在网站根目录中建立测试页面test.php,添加如下内容:
# vim /usr/html/test.php