设为首页 收藏本站
查看: 1241|回复: 0

[经验分享] Memcache使用详解

[复制链接]

尚未签到

发表于 2017-4-14 12:17:22 | 显示全部楼层 |阅读模式
MemcacheMemcache是danga.com的一个开源项目,它是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的Hash表,能够用来存储各种格式的数据。

查看当前的memcache连接数:

[iyunv@mem1 ~]# netstat -n | grep :11211 | wc -l
15752

查看默认允许的连接数:
[iyunv@mem1 ~]# cat /etc/rc.local 
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/usr/local/bin/memcached -d -m 15360 -u root -l 172.20.1.54 -p 11211 -c 40960  
/usr/local/bin/memcached -d -m 512 -u root -l 172.20.1.54 -p 11212 -c 10000 


这里设置的11211端口默认连接数是40960

 
在网络上查到资料, Memcache也有自己的查看工具:
如何查看memcache服务器端版本:  ./memcached  -h
memcache的运行状态可以方便的用 stats 命令显示。
首先用telnet 127.0.0.1 11211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。
这些状态的说明如下:
pidmemcache服务器的进程ID
uptime服务器已经运行的秒数
time服务器当前的unix时间戳
versionmemcache版本
pointer_size当前操作系统的指针大小(32位系统一般是32bit)
rusage_user进程的累计用户时间
rusage_system进程的累计系统时间
curr_items服务器当前存储的items数量
total_items从服务器启动以后存储的items总数量
bytes当前服务器存储items占用的字节数
curr_connections当前打开着的连接数
total_connections从服务器启动以后曾经打开过的连接数
connection_structures服务器分配的连接构造数
cmd_getget命令(获取)总请求次数
cmd_setset命令(保存)总请求次数
get_hits总命中次数
get_misses总未命中次数
evictions为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
bytes_read总读取字节数(请求字节数)
bytes_written总发送字节数(结果字节数)
limit_maxbytes分配给memcache的内存大小(字节)
threads当前线程数

memcache
 一、Memcache概述
      官网:http://memcached.org/。 Memcache(内存,缓存 是一个高性能的分布式的内存对象缓存系统。通过在内存里维护一个巨大的hash表。       key=value
                             Hash
key
value
mystr
“abc”
myarr
Array(“aa”, “cc”);
object
Object
        就是一个软件(服务软件) c/s软件 
       Mysql              129.12.121.11   3306
       Apache             www.baidu.com  80
      
       维护内存,是将数据在内存中使用, 减少I/O  150k 开源
        129.121.11.111   11211
      
二、Memcache工作原理
       Memcache 软件, memcached
       http   httpd
       vsftp   vsftpd
       c/s软件 
       memcached是以守护程序方式运行于一个或多个服务器中,随时会接收客户端的连接和操作。
       客户端使用各种语言去编写 PHP/java/c/c++/perl/python/ruby
       libevent    
三、为什么要在WEB中使用Memcache 
              基于libevent事件
              Linux
              安装libevent
                     ./configure –with-libevent=/usr
                     Make && make install
               安装memcached
                     ./configure –with-libevent=/usr
                      Make && make install
                  启动Memcahced –d –m 128 –l 192.168.1.111 –p 11211 –u root
                  停止: kill `cat /tmp/memcached.pid`;
                     Killall  memcached             
四、安装Memcache服务器(LinuxWindow上分别安装)
 Windows
  安装与卸载:memcahced.exe  -d  install [uninstall]
  启动:memcached.exe –d  -m 50 –l 127.0.0.1  -p 11211 start
 五、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 ,最大好像2G
-M 内存耗尽时返回错误,而不是删除项 
-c 最大同时连接数,默认是1024 
-f 块大小增长因子,默认是1.25 
-n 最小分配空间,key+value+flags默认是48 
-h 显示帮助
六、操作Memcached (命令行方式telnet作为客户端)
               telnet  192.168.1.128  80   ---  apache
              telnet 192.168.1.129  21     --- ftpd
              telnet 192.168.1.111   22    ---ssh
               telnet localhost 11211  ---memcached             
七、如何遍历memcache
 
八、在PHP程序中使用Memcached
       a PHP安装Memcache扩展
        b PHP什么地方使用memcache
        c 实例 
九、Memcache的安全(不让别人访问)
  安装然后开始 memcached -d start
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

当前线程数

 
具体可以参考PHP手册 “LXXXIV. Memcache Functions” 这章。
  Memcache面向对象的常用接口包括:
  Memcache::connect -- 打开一个到Memcache的连接
  Memcache::pconnect -- 打开一个到Memcache的长连接
  Memcache::close -- 关闭一个Memcache的连接
  Memcache::set -- 保存数据到Memcache服务器上
  Memcache::get -- 提取一个保存在Memcache服务器上的数据
  Memcache::replace -- 替换一个已经存在Memcache服务器上的项目(功能类似Memcache::set)
  Memcache::delete -- 从Memcache服务器上删除一个保存的项目
  Memcache::flush -- 刷新所有Memcache服务器上保存的项目(类似于删除所有的保存的项目)
  Memcache::getStats -- 获取当前Memcache服务器运行的状态
  Memcache::addServer -- 分布式服务器添加一个服务器

  10、常用命令
  memcached数据存储和取回相关的基本命令只有4条。下面将采用telnet与memcached进行交互,并介绍这4条基本命令。假设memcached服务器在本机上,并监听在默认端口11211上。
  telnet连接到memcached:telnet 127.0.0.1 11211
  SET:添加一个新的条目到memcached,或是用新的数据替换掉已存在的条目
  set test1 0 0 10
testing001
STORED
  ADD:仅当key不存在的情况下存储数据。如果一个key已经存在,将得到NOT_STORED的响应
  add test1 0 0 10
testing002
NOT_STORED
add test2 0 0 10
testing002
STORED
  REPLACE:仅当key已经存在的情况下存储数据。如果一个key不存在,将得到NOT_STORED的响应
  replace test1 0 0 10
testing003
STORED
replace test3 0 0 10
testing003
NOT_STORED
  GET:从memcached中返回数据。从缓存中返回数据时,将在第一行得到key的名字,flag的值和返回的value的长度。真正的数据在第二行,最后返回END。如果key并不存在,那么在第一行就直接返回END。
  get test1
VALUE test1 0 10
testing003
END
get test4
END
get test1 test2
VALUE test1 0 10
testing003
END
注:像上面那样你可以在一个请求中包含多个由空格分开的key。当请求多个key时,将只会得到那些有存储数据的key的响应。memcached将不会响应没有存储Data的key。 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-364909-1-1.html 上篇帖子: memcache proxy magent 下篇帖子: memcache 源码分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表