457475451 发表于 2018-12-20 12:21:30

php与memcached memcached

  废话从不多说,直接上图.
http://s3.运维网.com/wyfs02/M00/23/40/wKiom1M1XKDR6-a2AAF1mLpcA6o343.jpg
  

   简介:
                              Memcached是什么?
            memcached是一套分布式的高速缓存系统,由liveJournal的Brad Fitzpatrick开发,但目前被许多网站使用。这是一套开源代码软件,以
  BSD licens授权发布。Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
  Memcached由Danga Interactive开发,用于提升LiveJournal.com访问速度的。LJ每秒动态页面访问量几千次,用户700万。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。 memcached主页: http://memcached.org/原作者 Brad fitzpatrick 语言 :C语言类型:高速缓存服务器.

  

  安装memcached;
# tar xfmemcache-2.2.7.tgz
# cd memcache-2.2.7
# /usr/local/php/bin/phpize
# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config
# make && make install
# Build complete.
# Don't forget to run 'make test'.
# Installing shared extensions:   /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
# vim /usr/local/php/lib/php.ini 添加如下两行
# extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/"
# extension=memcache.so
# vim index.php # 编写网页测试脚本
# cat index.php
  

  测试php是否能够支持memcache
http://s3.运维网.com/wyfs02/M02/23/44/wKiom1M1YmPRW9WOAAGZwvI9zxU400.jpg
  memcached 基本使用:
  memcached的基本命令(安装、卸载、启动、配置相关):
-p 监听的端口
  -l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
  -M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
  memcached的基本命令(当memcached 启动后用于对memcached管理的数据和本身运行状态相关的命令):
  Command
  Description
  Example
  get
  Reads a value
  get mykey
  set
  Set a key unconditionally
  set mykey 0 60 5
  add
  Add a new key
  add newkey 0 60 5
  replace
  Overwrite existing key
  replace key 0 60 5
  append
  Append data to existing key
  append key 0 60 15
  prepend
  Prepend data to existing key
  prepend key 0 60 15
  incr
  Increments numerical key value by givennumber
  incr mykey 2
  decr
  Decrements numerical key value by givennumber
  decr mykey 5
  delete
  Deletes an existing key
  delete mykey
  flush_all
  Invalidate specific items immediately
  flush_all
  Invalidate all items in n seconds
  flush_all 900
  stats
  Prints general statistics
  stats
  Prints memory statistics
  stats slabs
  Prints memory statistics
  stats malloc
  Print higher level allocation statistics
  stats items

  stats detail

  stats sizes
  Resets statistics
  stats reset
  version
  Prints server version.
  version
  verbosity
  Increases log level
  verbosity
  quit
  Terminate telnet session
  quit
  对查看的信息的关键字中英文对照表
  pid
  memcache服务器的进程ID
  uptime
  服务器已经运行的秒数
  time
  服务器当前的unix时间戳
  version
  memcache版本
  pointer_size
  当前操作系统的指针大小(32位系统一般是32bit)
  rusage_user
  进程的累计用户时间
  rusage_system
  进程的累计系统时间
  curr_items
  服务器当前存储的items数量
  total_items
  从服务器启动以后存储的items总数量
  bytes
  当前服务器存储items占用的字节数
  curr_connections
  当前打开着的连接数
  total_connections
  从服务器启动以后曾经打开过的连接数
  connection_structures
  服务器分配的连接构造数
  cmd_get
  get命令(获取)总请求次数
  cmd_set
  set命令(保存)总请求次数
  get_hits
  总命中次数
  get_misses
  总未命中次数
  evictions
  为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
  bytes_read
  总读取字节数(请求字节数)
  bytes_written
  总发送字节数(结果字节数)
  limit_maxbytes
  分配给memcache的内存大小(字节)
  threads
  当前线程数
  测试memcached:在memcached解压包中提供了一个测试的小程序;

  
# more example.php
  安装memcached,安装memcached依赖libevent的开发包;
# yum -y install libevent-devel# tar xf memcached-1.4.15.tar.gz
# ./configure
# make
# make install  提供memcached服务脚本
#!/bin/bash
#
#chkconfig: - 86 14
#config : /etc/sysconfig/memcached
.   /etc/rc.d/init.d/functions
##Default varibles
PORT="11211"
USER="nobody"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
PETVAL=0
prog="/usr/local/bin/memcached"
desc="Distributed memory cacching"
lockfile="/var/lock/subsys/memcached"
start() {
echo -n $"Starting $desc (memcached): "
daemon $prog -d -p $PORT -u $USER -c $MAXCONN -m $CACHESIZE $OPTIONS
PETVAL=$?
echo
[ $PETVAL -eq 0 ] && touch $lockfile
return $PETVAL
}
stop () {
echo -n $"Shutting down $desc (memcached) :"
killproc $prog
PETVAL=$?
echo
[ $PETVAL -eq 0 ] && rm -rf $lockfile
return $PETVAL
}
restart () {
start
stop
}
reload () {
echo -n $"Reloading $desc ($prog) :"
killproc $prog -HUP
PETVAL=$?
echo
return    $PETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
*)
echo " start|stop|restart|reload|"
esac# vim /etc/rc.d/init.d/memcached
# chkconfig --add memcached
# chkconfig --list memcached
memcached       0:off   1:off   2:off   3:off   4:off   5:off   6:off
# chkconfig memcached on
# chkconfig --list memcached
memcached       0:off   1:off   2:on    3:on    4:on    5:on    6:off# service memcached start
Starting Distributed memory cacching (memcached):            写一个测试脚本网页程序
  在memcache的解压包中,提供了一个测试程序;

# cp /root/memcache-2.2.7/example.php/usr/html/
# cd/usr/html/
# cat example.php?php
$memcache = memcache_connect('localhost', 11211);
if ($memcache) {
$memcache->set("str_key", "String to store in memcached");
$memcache->set("num_key", 123);
$object = new StdClass;
$object->attribute = 'test';
$memcache->set("obj_key", $object);
$array = Array('assoc'=>123, 345, 567);
$memcache->set("arr_key", $array);
var_dump($memcache->get('str_key'));
var_dump($memcache->get('num_key'));
var_dump($memcache->get('obj_key'));
}
else {
echo "Connection to memcached failed";
}
?>  测试:
http://s3.运维网.com/wyfs02/M01/23/50/wKiom1M1kq7gIIz1AACSTOXGLsQ188.jpg



页: [1]
查看完整版本: php与memcached memcached