`
齐晓威_518
  • 浏览: 618032 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Memcache使用详解

 
阅读更多
Memcache
Memcache是danga.com的一个开源项目,它是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的Hash表,能够用来存储各种格式的数据。

查看当前的memcache连接数:

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

查看默认允许的连接数:
[root@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的状态。
这些状态的说明如下:

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 当前线程数

 

 

 

 

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。 

分享到:
评论

相关推荐

    memcache使用

    【Memcache使用详解】 Memcache是一款高性能的分布式内存对象缓存系统,主要用于减轻数据库的负载,通过将数据存储在内存中来快速响应读取请求。本文主要针对Windows环境下的Memcache安装与配置进行详述。 **一、...

    memcache安装与基本操作详解

    ### Memcache安装与基本操作详解 #### 一、前言 Memcache是一种高性能的分布式内存对象缓存系统,用于加速动态Web应用,减轻数据库负担。本文将详细介绍如何安装配置Memcache,并提供基本的操作示例。 #### 二、...

    PHP缓存技术:memcache函数详解

    要使用`memcache`,首先需要创建一个到Memcache服务器的连接。这可以通过`memcache_connect()`函数实现,它接受主机名、端口号作为参数,返回一个资源标识符,如: ```php $conn = memcache_connect('localhost',...

    PHP中的Memcache详解

    【PHP中的Memcache详解】 PHP中的Memcache是一个用于分布式内存缓存的扩展,它能够显著提升Web应用的性能,通过将常用数据存储在内存中,减少对数据库的访问,从而减轻服务器负担。本文将深入探讨Memcache的基本...

    MemCache服务器端和使用说明

    **MemCache服务器端详解** MemCache是一款高性能的分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高应用程序性能。它基于一个简单的理念:将数据存储在内存中,以便快速访问。由于数据存储...

    spring memcache 集成使用

    ### Spring与Memcache集成知识点详解 #### 一、Spring与Memcache简介 - **Spring**:Spring框架是Java平台上的一个开源应用框架,提供了一种简单的方式来管理对象生命周期以及依赖关系,同时也支持AOP(面向切面...

    php之Memcache的使用

    学习和使用`Memcache-20151006.doc`和`Memcached 原理和使用详解.pdf`文档,将有助于深入理解Memcache的工作原理和最佳实践。同时,通过`代码.zip`中的示例代码,可以更直观地了解Memcache在实际项目中的应用。

    memcache详解

    使用Memcache时,首先需要创建Memcache对象,然后连接服务器,之后可以设置(set)、获取(get)、删除(delete)键值对,也可以执行其他高级操作,比如增加(increment)、减少(decrement)等。Memcache支持多...

    memcache 使用安装说明

    **Memcache 使用与安装详解** Memcache 是一款高性能的分布式内存对象缓存系统,它能够存储数据并提供快速访问,广泛应用于减轻数据库负载,提升Web应用性能。在本文中,我们将详细探讨 Memcache 的基本概念、安装...

    Memcache win版 服务器和.net驱动

    **Memcache Win版服务器与.NET驱动详解** Memcache是一款高性能的分布式内存缓存系统,它最初是为了解决Web应用程序的数据库负载问题而设计的。通过将数据存储在内存中,Memcache能够快速地提供数据,减少对数据库...

    PHP memcache 多版本拓展

    **PHP Memcache 多版本拓展库详解** PHP Memcache拓展是PHP编程中广泛使用的扩展,它为PHP应用程序提供了与Memcached缓存系统交互的能力。Memcached是一个高性能的分布式内存对象缓存系统,常用于减轻数据库负载,...

    memcache 5.3.3

    **Memcache 5.3.3 知识点详解** Memcache 是一款广泛使用的高性能分布式内存对象缓存系统,主要用于减少数据库负载,提高网站或应用的响应速度。它通过将数据存储在内存中,实现快速读取,尤其适用于处理大量数据的...

    memcache监控工具

    **Memcache监控工具详解** Memcache是一款高性能的分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高应用程序性能。然而,为了确保Memcache系统的稳定性和高效运行,实时监控其运行状态至关...

    memcache使用方法

    标题“memcache使用方法”指出我们将探讨的是如何运用memcache这一内存对象缓存系统。Memcache是一种高性能的分布式内存缓存系统,常用于减轻数据库的负载,提升Web应用的性能。 描述中提到“讲述memcache在客户端...

    telnet连接操作memcache服务器详解

    要获取memcache服务器的状态信息,使用 `stats` 命令,这将返回包括进程ID、运行时间、当前时间、版本、指针大小、资源使用情况等统计信息: ```text stats ``` 以上就是通过telnet工具连接和管理memcache服务器的...

Global site tag (gtag.js) - Google Analytics