Memcache常用命令

合集下载

Memcache常用命令

Memcache常用命令
分配给memcache的内存大小(字节)
threads
当前线程数
bytes
当前服务器存储items占用的字节数
curr_connections
当前打开着的连接数
total_connections
从服务器启动以后曾经打开过的连接数
connection_structures
服务器分配的连接构造数set
set命令(保存)总请求次数
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
stats slabs
Prints memory statistics
stats malloc
Print higher level allocation statistics
stats items
stats detail
stats sizes
Resets statistics
stats reset
version
memcached的基本命令(安装、卸载、启动、配置相关):
-p监听的端口
-l连接的IP地址,默认是本机
-d start启动memcached服务
-d restart重起memcached服务
-d stop|shutdown关闭正在运行的memcached服务
-d install安装memcached服务

课题_memcached stats 命令

课题_memcached stats 命令

命令行查看Memcached运行状态很多时候需要监控服务器上的Memcached运行情况,比如缓存的查询次数,命中率之类的。

但找到的那个memcached-tool是linux下用perl写的,我也没试过windows能不能用。

后来发现个简单的办法可以做到,就是使用Telnet。

首先登录到服务器,然后在cmd命令行中键入telnet 127.0.0.1 11211其中127.0.0.1是服务器的地址(这里是本机),11211是memcached绑定的端口号。

之后命令行窗口全黑只有光标提示,摸黑输入stats,即可得到描述Memcached服务器运行情况的参数。

如下图:其中,uptime 是memcached运行的秒数,cmd_get是查询缓存的次数。

这两个数据相除一下就能得到平均每秒请求缓存的次数——最近niupu的流量很低,所以平均也就一秒请求一次多,这么点大的压力,用文件系统缓存一样没问题,根本不会体现出使用memcached的优越。

下面的cmd_set 就是设置key=>value的次数。

整个memcached是个大hash,用cmd_get没有找到的内容,就会调用一下cmd_set写进缓存里。

紧跟着是get_hits,就是缓存命中的次数。

缓存命中率=get_hits/cmd_get * 100%。

下面的get_misses的数字加上get_hits应该等于cmd_get。

而total_itemscurr_items表示现在在缓存中的键值对个数,在图上total_items == cmd_set == get_misses,不过当可用最大内存用光时,memcached就会删掉一些内容,上面的等式就不成立了。

话说回来,memcached要是能有一套完整的监测工具就太好了。

memcached的安装和php相应配置请看这里。

Memcached的stats命令telnet到memcached服务器后有很多的命令可以使用,除了大家熟知的add、get、set、incr、decr、replace、delete 等赋值命令外,还有一系列的获取服务器信息的命令,这部分命令都是以stats开头的。

memcached 手册

memcached 手册

memcached 手册Memcached是一个高性能的开源内存对象缓存系统,被广泛地应用于提升网站和应用程序性能。

该手册将介绍Memcached的基本概念、安装配置、常用命令以及最佳实践等关键内容,旨在帮助读者快速了解和使用Memcached。

一、Memcached概述Memcached可以看作是一个分布式的缓存系统,它将数据缓存在内存中,并提供了简单的键值对存取接口。

相比于传统的关系型数据库,Memcached具有更快的读写速度和更高的并发能力,因为它直接操作内存而避免了磁盘I/O。

此外,Memcached采用了多台服务器的分布式架构,能够提供横向扩展的能力。

二、安装与配置1.下载和安装:Memcached可以从官方网站或其他镜像站点下载安装包,并根据相应平台的指引进行安装。

安装完成后,可以通过运行"memcached"命令来启动Memcached服务。

2.配置文件:Memcached的默认配置文件是"memcached.conf",可以通过修改该文件中的参数来调整Memcached的行为。

主要的配置项包括监听端口、最大连接数、内存容量等。

三、常用命令1.存储数据:用"set"命令可以将键值对存入Memcached中,例如:"set key 0 3600 5"表示存储一个key为"key",值为"0",并设置过期时间为3600秒。

如果要存储的值超出了内存容量限制,旧的数据将会被替换。

2.获取数据:用"get"命令可以从Memcached中获取指定键对应的值,例如:"get key"可以获取到之前存储的值。

如果该键不存在,返回结果将是"END"。

3.删除数据:用"delete"命令可以从Memcached中删除指定键对应的值,例如:"delete key"可以删除之前存储的值。

Memcache资料

Memcache资料

Memcache缓存1.MyBatis缓存MyBatis缓存分为一级缓存与二级缓存一级缓存:基于PerpetualCache 的HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有Cache 就将清空。

二级缓存:与一级缓存其机制相同,默认也是采用PerpetualCache,HashMap存储,不同在于其存储作用域为Mapper(Namespace)缓存更新机制:当某一作用域(一级缓存Session/二级缓存Namespaces)的进行了C/U/D 操作后,默认该作用域下所有select 中的缓存将被清空避免使用二级缓存:/isea533/article/details/445662572.Memcachea)简介Memcache 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。

它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

Memcache基于一个存储键/值对的hashmapb)安装安装命令-d 选项是启动一个守护进程-m 是分配给Memcache使用的内存数量,单位是MB,默认是64MB-u 是运行Memcache的用户-L 是监听的服务器IP地址,默认应该是本机-I page大小,默认1M-p 是设置Memcache监听的端口,默认是11211,最好是1024以上的端口-c 选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定-P 是设置保存Memcache的pid文件位置-h 打印帮助信息-f 指定chunk增长因子大小,该值越小所能提供的chunk间隔越小,可以减少内存的浪费-n chunk最小尺寸-v 输出警告和错误信息-vv 打印客户端的请求和返回信息PS:Memcached单进程在32位系统中最大使用内存为2G,若在64位系统则没有限制,这是由于32位系统限制单进程最多可使用2G内存,要使用更多内存,可以分多个端口开启多个Memcached进程最大30天的数据过期时间,设置为永久的也会在这个时间过期Key: 最大键长为250字节,大于长度无法存储,常量KEY_MAX_LENGTH 250控制Value: 单个item最大数据是1MB,超过1MB数据不予存储,常量POWER_BLOCK 1048576进行控制运行命令1. 使用telnet连接Memcache服务器端口2. 连接上端口输入stats命令,获取描述Memcache服务器运行情况的参数操作命令 /zzulp/article/details/7823511 命令参数以及用法: 1. s et:命令用于向缓存添加新的键值对。

MemCache详细解读

MemCache详细解读

MemCache详细解读MemCache是什么MemCache是⼀个⾃由、源码开放、⾼性能、分布式的分布式内存对象缓存系统,⽤于动态Web应⽤以减轻数据库的负载。

它通过在内存中缓存数据和对象来减少读取数据库的次数,从⽽提⾼了⽹站访问的速度。

MemCaChe是⼀个存储键值对的HashMap,在内存中对任意的数据(⽐如字符串、对象等)所使⽤的key-value存储,数据可以来⾃数据库调⽤、API调⽤,或者页⾯渲染的结果。

MemCache设计理念就是⼩⽽强⼤,它简单的设计促进了快速部署、易于开发并解决⾯对⼤规模的数据缓存的许多难题,⽽所开放的API使得MemCache能⽤于Java、C/C++/C#、Perl、Python、PHP、Ruby等⼤部分流⾏的程序语⾔。

另外,说⼀下MemCache和MemCached的区别:1、MemCache是项⽬的名称2、MemCached是MemCache服务器端可以执⾏⽂件的名称MemCache访问模型为了加深理解,我模仿着原阿⾥技术专家李智慧⽼师《⼤型⽹站技术架构核⼼原理与案例分析》⼀书MemCache部分,⾃⼰画了⼀张图:特别澄清⼀个问题,MemCache虽然被称为"分布式缓存",但是MemCache本⾝完全不具备分布式的功能,MemCache集群之间不会相互通信(与之形成对⽐的,⽐如JBoss Cache,某台服务器有缓存数据更新时,会通知集群中其他机器更新缓存或清除缓存数据),所谓的"分布式",完全依赖于客户端程序的实现,就像上⾯这张图的流程⼀样。

同时基于这张图,理⼀下MemCache⼀次写缓存的流程:1、应⽤程序输⼊需要写缓存的数据2、API将Key输⼊路由算法模块,路由算法根据Key和MemCache集群服务器列表得到⼀台服务器编号3、由服务器编号得到MemCache及其的ip地址和端⼝号4、API调⽤通信模块和指定编号的服务器通信,将数据写⼊该服务器,完成⼀次分布式缓存的写操作读缓存和写缓存⼀样,只要使⽤相同的路由算法和服务器列表,只要应⽤程序查询的是相同的Key,MemCache客户端总是访问相同的客户端去读取数据,只要服务器中还缓存着该数据,就能保证缓存命中。

命令行查看Memcached运行状态(shell或者telnet)共7页

命令行查看Memcached运行状态(shell或者telnet)共7页

stats查看memcached状态的基本命令,通过这个命令可以看到如下信息:STAT pid 22459 进程IDSTAT uptime 1027046 服务器运行秒数STAT time 1273043062 服务器当前unix时间戳STAT version 1. 4. 4 服务器版本STAT pointer_size 64 操作系统字大小(这台服务器是64位的)STAT rusage_user 0. 040000 进程累计用户时间STAT rusage_system 0. 260000 进程累计系统时间STAT curr_connections 10 当前打开连接数STAT total_connections 82 曾打开的连接总数STAT connection_structures 13 服务器分配的连接结构数STAT cmd_get 54 执行get 命令总数STAT cmd_set 34 执行set 命令总数STAT cmd_flush 3 指向flush_all命令总数STAT get_hits 9 get命中次数STAT get_misses 45 get未命中次数STAT delete_misses 5 delete未命中次数STAT delete_hits 1 delete命中次数STAT incr_misses 0 incr未命中次数STAT incr_hits 0 incr命中次数STAT decr_misses 0 decr未命中次数STAT decr_hits 0 decr命中次数STAT cas_misses 0 cas未命中次数STAT cas_hits 0 cas命中次数STAT cas_badval 0 使用擦拭次数STAT auth_cmds 0STAT auth_errors 0STAT bytes_read 15785 读取字节总数STAT bytes_written 15222 写入字节总数 STAT limit_maxbytes 1048576 分配的内存数(字节)STAT accepting_conns 1 目前接受的链接数STAT listen_disabled_num 0STAT threads 4 线程数 STAT conn_yields 0STAT bytes 0 存储item字节数STAT curr_items 0 item个数 STAT total_items 34 item总数 STAT evictions 0 为获取空间删除item的总数stats items输出各个slab中的item信息。

memcached的使用

memcached的使用

memcached的使⽤ 1. 下载memcached客户端⽂件把下载⽂件放在⽂件⽬录下2. 安装 memcached命令: c:/memcached/memcached.exe -d install3. 启动 memcachedc:/memcached/memcached.exe -d start4. 连接到 memcachedtelnet localhost 112115:客户端使⽤的基本命令启动/结束memcached -d -m 10 -u root -l 127.0.0.1 -p 11200 -c 256 -P /tmp/memcached.pid-d 选项是启动⼀个守护进程-m 是分配给Memcache使⽤的内存数量,单位是MB,这⾥是10MB-u 是运⾏Memcache的⽤户,这⾥是root-l 是监听的服务器IP地址,如果有多个地址的话,这⾥指定了服务器的IP地址127.0.0.1-p 是设置Memcache监听的端⼝,这⾥设置了12000,最好是1024以上的端⼝-c 选项是最⼤运⾏的并发连接数,默认是1024,这⾥设置了256,按照你服务器的负载量来设定-P 是设置保存Memcache的pid⽂件kill `cat /tmp/memcached.pid` 关闭memcached6:在项⽬中使⽤(与Spring集成)获取Memcached API 地址:创建接⼝MemcachedClient1import java.util.Collection;2import java.util.Map;3import java.util.concurrent.TimeoutException;45/**6 * 提供通⽤的memcached访问接⼝7*/8public interface MemcachedClient {9/**10 * 不管数据存在不存在都会将⽬前设置的数据存储的memcached11 *12 * @param key13 * 不要超过250字节14 * @param exp15 * 以秒为单位,如果超过30天的值,将会⽤unix timestamp来制定截⽌有效时间16 * @param value17 * @return18 * @throws TimeoutException19 * @throws InterruptedException20 * @throws MemcachedClientException21*/22boolean set(String key, int exp, Object value) throws TimeoutException,23 InterruptedException, MemcachedClientException;2425/**26 * 不管数据存在不存在都会将⽬前设置的数据存储的memcached,⾃⾏制定超时时间27 *28 * @see #set(String, int, Object)29 * @param key30 * @param exp31 * @param value32 * @param timeout33 * @return34 * @throws TimeoutException35 * @throws InterruptedException36 * @throws MemcachedClientException37*/38boolean set(String key, int exp, Object value, long timeout)39throws TimeoutException, InterruptedException,4142/**43 * 不管数据存在不存在都会将⽬前设置的数据存储的memcached,但不等待返回确认44 *45 * @see #set(String, int, Object)46 * @param key47 * @param exp48 * @param value49 * @throws InterruptedException50 * @throws MemcachedClientException51*/52void setWithNoReply(String key, int exp, Object value)53throws InterruptedException, MemcachedClientException;5455/**56 * 只有数据不存在时进⾏添加57 *58 * @param key59 * 不要超过250字节60 * @param exp61 * 以秒为单位,如果超过30天的值,将会⽤unix timestamp来制定截⽌有效时间62 * @param value63 * @return64 * @throws TimeoutException65 * @throws InterruptedException66 * @throws MemcachedClientException67*/68boolean add(String key, int exp, Object value) throws TimeoutException,69 InterruptedException, MemcachedClientException;7071/**72 * 只有数据不存在时进⾏添加73 *74 * @param key75 * @param exp76 * 以秒为单位,如果超过30天的值,将会⽤unix timestamp来制定截⽌有效时间77 * @param value78 * @param timeout79 * 1/1000秒为单位,在制定的时间段内没有响应就抛出TimeoutException80 * @return81 * @throws TimeoutException82 * @throws InterruptedException83 * @throws MemcachedClientException84*/85boolean add(String key, int exp, Object value, long timeout)86throws TimeoutException, InterruptedException,87 MemcachedClientException;8889/**90 * 只有数据不存在时进⾏添加,不需要返回具体的确认信息,⼤多数情况下可以⽤此⽅法来提升效率,毕竟我们对Memcached的理解是假设数据不是持久的91 *92 * @param key93 * @param exp94 * @param value95 * @throws InterruptedException96 * @throws MemcachedClientException97*/98void addWithNoReply(String key, int exp, Object value)99throws InterruptedException, MemcachedClientException;100101/**102 * 只有数据存在才进⾏覆盖103 *104 * @param key105 * @param exp106 * @param value107 * @return108 * @throws TimeoutException109 * @throws InterruptedException110 * @throws MemcachedClientException111*/112boolean replace(String key, int exp, Object value) throws TimeoutException,113 InterruptedException, MemcachedClientException;114115/**116 * 只有数据存在才进⾏覆盖117 *118 * @param key119 * @param exp120 * @param value121 * @param timeout122 * @return125 * @throws MemcachedClientException126*/127boolean replace(String key, int exp, Object value, long timeout)128throws TimeoutException, InterruptedException,129 MemcachedClientException;130131/**132 * 只有数据存在才进⾏覆盖,不等返回确认133 *134 * @param key135 * @param exp136 * @param value137 * @throws InterruptedException138 * @throws MemcachedClientException139*/140void replaceWithNoReply(String key, int exp, Object value)141throws InterruptedException, MemcachedClientException; 142143/**144 * 追加到当前数据的后⾯145 *146 * @param key147 * @param value148 * @return149 * @throws TimeoutException150 * @throws InterruptedException151 * @throws MemcachedClientException152*/153boolean append(String key, Object value) throws TimeoutException, 154 InterruptedException, MemcachedClientException;155156/**157 * 追加到当前数据的后⾯158 *159 * @param key160 * @param value161 * @param timeout162 * @return163 * @throws TimeoutException164 * @throws InterruptedException165 * @throws MemcachedClientException166*/167boolean append(String key, Object value, long timeout)168throws TimeoutException, InterruptedException,169 MemcachedClientException;170171/**172 * 追加到当前数据的后⾯,不等待响应173 *174 * @param key175 * @param value176 * @throws InterruptedException177 * @throws MemcachedClientException178*/179void appendWithNoReply(String key, Object value)180throws InterruptedException, MemcachedClientException; 181182/**183 * 追加到当前数据的前⾯184 *185 * @param key186 * @param value187 * @return188 * @throws TimeoutException189 * @throws InterruptedException190 * @throws MemcachedClientException191*/192boolean prepend(String key, Object value) throws TimeoutException, 193 InterruptedException, MemcachedClientException;194195/**196 * 追加到当前数据的前⾯197 *198 * @param key199 * @param value200 * @param timeout201 * @return202 * @throws TimeoutException203 * @throws InterruptedException204 * @throws MemcachedClientException205*/206boolean prepend(String key, Object value, long timeout)209210/**211 * 追加到当前数据的前⾯,不等待返回212 *213 * @param key214 * @param value215 * @throws InterruptedException216 * @throws MemcachedClientException217*/218void prependWithNoReply(String key, Object value)219throws InterruptedException, MemcachedClientException;220221long incr(String key, long delta, long initValue) throws TimeoutException,222 InterruptedException, MemcachedClientException;223224long incr(String key, long delta, long initValue, long timeout)225throws TimeoutException, InterruptedException,226 MemcachedClientException;227228void incrWithNoReply(String key, long delta) throws InterruptedException,229 MemcachedClientException;230231long decr(String key, long delta, long initValue) throws TimeoutException,232 InterruptedException, MemcachedClientException;233234long decr(String key, long delta, long initValue, long timeout)235throws TimeoutException, InterruptedException,236 MemcachedClientException;237238void decrWithNoReply(String key, long delta) throws InterruptedException,239 MemcachedClientException;240241boolean delete(String key) throws TimeoutException, InterruptedException,242 MemcachedClientException;243244boolean delete(String key, long opTimeout) throws TimeoutException,245 InterruptedException, MemcachedClientException;246247boolean delete(String key, long cas, long opTimeout)248throws TimeoutException, InterruptedException,249 MemcachedClientException;250251void deleteWithNoReply(String key) throws InterruptedException,252 MemcachedClientException;253254 <T> T get(String key) throws TimeoutException, InterruptedException,255 MemcachedClientException;256257 <T> T get(String key, long timeout) throws TimeoutException,258 InterruptedException, MemcachedClientException;259260 <T> Map<String, T> get(Collection<String> keyCollections)261throws TimeoutException, InterruptedException,262 MemcachedClientException;263264 <T> Map<String, T> get(Collection<String> keyCollections, long timeout)265throws TimeoutException, InterruptedException,266 MemcachedClientException;267268 <T> GetsResponse<T> gets(String key) throws TimeoutException,269 InterruptedException, MemcachedClientException;270271 <T> GetsResponse<T> gets(String key, long timeout) throws TimeoutException, 272 InterruptedException, MemcachedClientException;273274 <T> Map<String, GetsResponse<T>> gets(Collection<String> keyCollections) 275throws TimeoutException, InterruptedException,276 MemcachedClientException;277278 <T> Map<String, GetsResponse<T>> gets(Collection<String> keyCollections, 279long timeout) throws TimeoutException, InterruptedException,280 MemcachedClientException;281282283284boolean isEnabled();285 }创建接⼝实现类MemcachedClientWrapper1package .jszg.cache;3import java.util.Collection;4import java.util.HashMap;5import java.util.Map;6import java.util.Set;7import java.util.concurrent.TimeoutException;89import net.rubyeye.xmemcached.exception.MemcachedException;1011public class MemcachedClientWrapper implements MemcachedClient {12private net.rubyeye.xmemcached.MemcachedClient client;13private boolean enabled = false;1415public MemcachedClientWrapper() {16super();17 }1819public void setMemcachedClient(net.rubyeye.xmemcached.MemcachedClient client) {20this.client = client;21 }2223public net.rubyeye.xmemcached.MemcachedClient getXMemcachedClient() {24return client;25 }2627 @Override28public boolean set(String key, int exp, Object value) throws TimeoutException, InterruptedException, 29 MemcachedClientException {30try {31return client.set(key, exp, value);32 } catch (MemcachedException e) {33throw new MemcachedClientException(e);34 }35 }3637 @Override38public boolean set(String key, int exp, Object value, long timeout) throws TimeoutException,39 InterruptedException, MemcachedClientException {40try {41return client.set(key, exp, value, timeout);42 } catch (MemcachedException e) {43throw new MemcachedClientException(e);44 }45 }4647 @Override48public void setWithNoReply(String key, int exp, Object value) throws InterruptedException,49 MemcachedClientException {50try {51 client.setWithNoReply(key, exp, value);52 } catch (MemcachedException e) {53throw new MemcachedClientException(e);54 }55 }5657 @Override58public boolean add(String key, int exp, Object value) throws TimeoutException, InterruptedException, 59 MemcachedClientException {60try {61return client.add(key, exp, value);62 } catch (MemcachedException e) {63throw new MemcachedClientException(e);64 }65 }6667 @Override68public boolean add(String key, int exp, Object value, long timeout) throws TimeoutException,69 InterruptedException, MemcachedClientException {70try {71return client.add(key, exp, value, timeout);72 } catch (MemcachedException e) {73throw new MemcachedClientException(e);74 }75 }7677 @Override78public void addWithNoReply(String key, int exp, Object value) throws InterruptedException,79 MemcachedClientException {80try {81 client.addWithNoReply(key, exp, value);82 } catch (MemcachedException e) {83throw new MemcachedClientException(e);84 }85 }87 @Override88public boolean replace(String key, int exp, Object value) throws TimeoutException, InterruptedException,89 MemcachedClientException {90try {91return client.replace(key, exp, value);92 } catch (MemcachedException e) {93throw new MemcachedClientException(e);94 }95 }9697 @Override98public boolean replace(String key, int exp, Object value, long timeout) throws TimeoutException,99 InterruptedException, MemcachedClientException {100try {101return client.replace(key, exp, value, timeout);102 } catch (MemcachedException e) {103throw new MemcachedClientException(e);104 }105 }106107 @Override108public void replaceWithNoReply(String key, int exp, Object value) throws InterruptedException,109 MemcachedClientException {110try {111 client.replaceWithNoReply(key, exp, value);112 } catch (MemcachedException e) {113throw new MemcachedClientException(e);114 }115 }116117 @Override118public boolean append(String key, Object value) throws TimeoutException, InterruptedException,119 MemcachedClientException {120try {121return client.append(key, value);122 } catch (MemcachedException e) {123throw new MemcachedClientException(e);124 }125 }126127 @Override128public boolean append(String key, Object value, long timeout) throws TimeoutException, InterruptedException,129 MemcachedClientException {130try {131return client.append(key, value, timeout);132 } catch (MemcachedException e) {133throw new MemcachedClientException(e);134 }135 }136137 @Override138public void appendWithNoReply(String key, Object value) throws InterruptedException, MemcachedClientException { 139try {140 client.appendWithNoReply(key, value);141 } catch (MemcachedException e) {142throw new MemcachedClientException(e);143 }144 }145146 @Override147public boolean prepend(String key, Object value) throws TimeoutException, InterruptedException,148 MemcachedClientException {149try {150return client.prepend(key, value);151 } catch (MemcachedException e) {152throw new MemcachedClientException(e);153 }154 }155156 @Override157public boolean prepend(String key, Object value, long timeout) throws TimeoutException, InterruptedException,158 MemcachedClientException {159try {160return client.prepend(key, value, timeout);161 } catch (MemcachedException e) {162throw new MemcachedClientException(e);163 }164 }165166 @Override167public void prependWithNoReply(String key, Object value) throws InterruptedException, MemcachedClientException { 168try {169 client.prependWithNoReply(key, value);171throw new MemcachedClientException(e);172 }173 }174175 @Override176public long incr(String key, long delta, long initValue) throws TimeoutException, InterruptedException,177 MemcachedClientException {178try {179return client.incr(key, delta, initValue);180 } catch (MemcachedException e) {181throw new MemcachedClientException(e);182 }183 }184185 @Override186public long incr(String key, long delta, long initValue, long timeout) throws TimeoutException,187 InterruptedException, MemcachedClientException {188try {189return client.incr(key, delta, initValue, timeout);190 } catch (MemcachedException e) {191throw new MemcachedClientException(e);192 }193 }194195 @Override196public void incrWithNoReply(String key, long delta) throws InterruptedException, MemcachedClientException { 197try {198 client.incrWithNoReply(key, delta);199 } catch (MemcachedException e) {200throw new MemcachedClientException(e);201 }202 }203204 @Override205public long decr(String key, long delta, long initValue) throws TimeoutException, InterruptedException,206 MemcachedClientException {207try {208return client.decr(key, delta, initValue);209 } catch (MemcachedException e) {210throw new MemcachedClientException(e);211 }212 }213214 @Override215public long decr(String key, long delta, long initValue, long timeout) throws TimeoutException,216 InterruptedException, MemcachedClientException {217try {218return client.decr(key, delta, initValue, timeout);219 } catch (MemcachedException e) {220throw new MemcachedClientException(e);221 }222 }223224 @Override225public void decrWithNoReply(String key, long delta) throws InterruptedException, MemcachedClientException { 226try {227 client.decrWithNoReply(key, delta);228 } catch (MemcachedException e) {229throw new MemcachedClientException(e);230 }231 }232233 @Override234public boolean delete(String key) throws TimeoutException, InterruptedException, MemcachedClientException { 235try {236return client.delete(key);237 } catch (MemcachedException e) {238throw new MemcachedClientException(e);239 }240 }241242 @Override243public boolean delete(String key, long opTimeout) throws TimeoutException, InterruptedException,244 MemcachedClientException {245try {246return client.delete(key, opTimeout);247 } catch (MemcachedException e) {248throw new MemcachedClientException(e);249 }250 }251252 @Override253public boolean delete(String key, long cas, long opTimeout) throws TimeoutException, InterruptedException,255try {256return client.delete(key, cas, opTimeout);257 } catch (MemcachedException e) {258throw new MemcachedClientException(e);259 }260 }261262 @Override263public void deleteWithNoReply(String key) throws InterruptedException, MemcachedClientException {264try {265 client.deleteWithNoReply(key);266 } catch (MemcachedException e) {267throw new MemcachedClientException(e);268 }269 }270271 @SuppressWarnings("unchecked")272 @Override273public <T> T get(String key) throws TimeoutException, InterruptedException, MemcachedClientException { 274try {275return (T)client.get(key);276 } catch (MemcachedException e) {277throw new MemcachedClientException(e);278 }279 }280281 @SuppressWarnings("unchecked")282 @Override283public <T> T get(String key, long timeout) throws TimeoutException, InterruptedException,284 MemcachedClientException {285try {286return (T)client.get(key, timeout);287 } catch (MemcachedException e) {288throw new MemcachedClientException(e);289 }290 }291292 @Override293public <T> Map<String, T> get(Collection<String> keyCollections) throws TimeoutException,294 InterruptedException, MemcachedClientException {295try {296return client.get(keyCollections);297 } catch (MemcachedException e) {298throw new MemcachedClientException(e);299 }300 }301302 @Override303public <T> Map<String, T> get(Collection<String> keyCollections, long timeout) throws TimeoutException, 304 InterruptedException, MemcachedClientException {305try {306return client.get(keyCollections, timeout);307 } catch (MemcachedException e) {308throw new MemcachedClientException(e);309 }310 }311312 @SuppressWarnings("unchecked")313 @Override314public <T> GetsResponse<T> gets(String key) throws TimeoutException, InterruptedException,315 MemcachedClientException {316try {317return new GetsResponse<T>((net.rubyeye.xmemcached.GetsResponse<T>) client.gets(key));318 } catch (MemcachedException e) {319throw new MemcachedClientException(e);320 }321 }322323 @SuppressWarnings("unchecked")324 @Override325public <T> GetsResponse<T> gets(String key, long timeout) throws TimeoutException, InterruptedException, 326 MemcachedClientException {327try {328return new GetsResponse<T>((net.rubyeye.xmemcached.GetsResponse<T>) client.gets(key, timeout)); 329 } catch (MemcachedException e) {330throw new MemcachedClientException(e);331 }332 }333334 @Override335public <T> Map<String, GetsResponse<T>> gets(Collection<String> keyCollections) throws TimeoutException, 336 InterruptedException, MemcachedClientException {339 Map<String, net.rubyeye.xmemcached.GetsResponse<T>> tmps = client.gets(keyCollections);340if (tmps != null) {341 Set<String> keys = tmps.keySet();342for (String key : keys) {343 results.put(key, new GetsResponse<T>((net.rubyeye.xmemcached.GetsResponse<T>) tmps.get(key)));344 }345 }346return results;347 } catch (MemcachedException e) {348throw new MemcachedClientException(e);349 }350 }351352 @Override353public <T> Map<String, GetsResponse<T>> gets(Collection<String> keyCollections, long timeout)354throws TimeoutException, InterruptedException, MemcachedClientException {355try {356 Map<String, GetsResponse<T>> results = new HashMap<String, GetsResponse<T>>();357 Map<String, net.rubyeye.xmemcached.GetsResponse<T>> tmps = client.gets(keyCollections, timeout);358if (tmps != null) {359 Set<String> keys = tmps.keySet();360for (String key : keys) {361 results.put(key, new GetsResponse<T>((net.rubyeye.xmemcached.GetsResponse<T>) tmps.get(key)));362 }363 }364return results;365 } catch (MemcachedException e) {366throw new MemcachedClientException(e);367 }368 }369370 @Override371public boolean isEnabled() {372return enabled;373 }374375public void setEnabled(boolean enabled) {376this.enabled = enabled;377 }378379 }经验总结:缓存数据的⼀致性问题缓存数据尽量只读,因此缓存本⾝是不适合⼤量写和更新操作的数据场景的。

memcached stats 命令

memcached stats 命令

telnet到memcached服务器后有很多的命令可以使用,除了大家熟知的add、get、set、incr、decr、replace、delete等赋值命令外,还有一系列的获取服务器信息的命令,这部分命令都是以stats开头的。

1、stats :显示服务器信息、统计数据等pid:守护进程的iduptime:进程已经运行的时间,以秒为单位time:当前的unix时间version:服务器版本pointer_size:操作系统默认的指针长度rusage_user:进程累计的user time(秒:毫秒)rusage_system:进程累计的system time(秒:毫秒)curr_items:当前的items数量total_items:进程启动开始存储过的items数量bytes:当前用于存储items的byte数量curr_connections:打开的连接数量total_connections:进程启动开始打开过的连接数量connection_structures:服务分配的连接结构数量cmd_get:提取请求次数cmd_set:存储请求次数get_hits:get命中次数get_misses:get未命中次数evictions:为了添加新item而回收的合法item数量bytes_read:服务从network读取的byte数量bytes_written:服务写入network的byte数量limit_maxbytes:服务可使用的用于存储数据的最大值threads:被请求的工作线程数量2、stats reset 清空统计数据3、stats malloc 显示内存分配数据4、stats maps 是把/proc/self/maps的数据显示出来。

如果远程攻击者连接到了memcached的TCP端口(默认11211)并发布了stats maps命令,Memcached就会直接将/proc/self/maps的输出管道传输给客户端。

memcache 用法

memcache 用法

memcache 用法
Memcache 是分布式缓存系统,主要服务于动态Web 应用,以减轻数据库负载。

其运作机理是基于存储键值对的数据结构(在内存中建立一个巨大的hash表,可以存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等)。

以下是Memcache的使用方法:1.添加一个键值对:使用 add 方法,例如:$mem->add('test','123',0,60);。

其中,'test' 是键,'123' 是值,0 是过期时间(单位:秒),60 是缓存时间(单位:秒)。

2.获取一个键的值:使用 get 方法,例如:$mem->get('test');。

这将返回键'test' 的值。

3.覆写已存在的键值对:使用 replace 方法,例如:$mem->replace('test','456',0,60);。

这将会替换键'test' 的值,新的值为'456'。

4.删除一个键值对:使用 delete 方法,例如:$mem->delete('test',60);。

这将删除键'test' 及其对应的值。

请注意,以上只是Memcache 的基础使用方式,实际应用中可能涉及更多复杂的操作和设置。

如果您需要更深入的了解或使用,建议查阅Memcache 的官方文档或相关教
程。

Memcached 源码分析--命令流程分析

Memcached 源码分析--命令流程分析

Memcached 源码分析--命令流程分析一、执行命令首先是启动memcached 自带参数如下:[plain] view plain copy print?在CODE上查看代码片派生到我的代码片<span style="font-size:18px;">-p <num> 设置TCP端口号(默认设置为: 11211)-U <num> UDP监听端口(默认: 11211, 0 时关闭)-l <ip_addr> 绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问)-c <num> max simultaneous connections (default: 1024)-d 以daemon方式运行-u <username> 绑定使用指定用于运行进程<username>-m <num> 允许最大内存用量,单位M (默认: 64 MB)-P <file> 将PID写入文件<file>,这样可以使得后边进行快速进程终止, 需要与-d 一起使用</span>#$: ./usr/local/bin/memcached -d -u root -l 192.168.10.156 -m 2048 -p 12121客户端通过网络方式连接:telnet 192.168.10.156 12121然后就可以操作命令、常见命令如下:[plain] view plain copy print?在CODE上查看代码片派生到我的代码片<span style="font-size:18px;">setaddreplacegetdelete</span>格式如下:[plain] view plain copy print?在CODE上查看代码片派生到我的代码片<span style="font-size:18px;">command <key> <flags> <expiration time> <bytes><value>参数说明如下:command set/add/replacekey key 用于查找缓存值flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息expiration time 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)bytes 在缓存中存储的字节点value 存储的值(始终位于第二行)</span>二、命令执行流程代码分析首先看一下工作线程中的命令数据结构:/*** The structure representing a connection into memcached.*/typedef struct conn conn;非常重要的几个参数:char * rbuf:用于存储客户端数据报文中的命令。

Memcached学习之存取命令

Memcached学习之存取命令

在线学习好工作/Memcached学习之存取命令本文和大家分享的主要是Memcached中常用的一些存取命令相关用法,一起来看看吧,希望对大家学习Memcached有所帮互助。

存储命令set:不管key存在与否,强制进行set操作;add:必须在memcached中不存在相应key才能作用;replace:要求memcached中必须存在相应key才能作用;append:将数据追加到key对应value值的末尾。

(不允许超过限制,用于管理list)cas(check and set):另一个存储数据的操作,当你最后一次读取该数据后,没有其它人修改该数据时,才可以写成功。

用于解决更新数据时的竞争。

获取命令:get:获取一个key的或多个keys的值;gets:带CAS的get命令,会返回带CAS标识(唯一的64位数字)的value。

delete:删除存在的项incr/decr:自增或自减。

只接受正整数。

如果key不存在,incr/decr失败。

flush_all:清除memcached中所有项,主要采取将所有数据设置为过期的方式实现,可指定过期时间。

Python Client: python-memcached vs pylibmc(对比介绍常用的Client客户端)操作演示python-memcached:pip install python-memcached //直接安python-memcached Pylibmc:sudo apt-get install python-dev //先安装python-devSudo apt-get install libmemcached-dev //再安装libmemcached-devpip install pylibmc //安装客户端成功启动memcached服务:python-memcached的操作演示如果不设置参数,默认在所有的IP地址上都启动,默认端口11211如图启动好后就可以操作这个缓存了先进入代码库,然后激活虚拟缓存,激活后执行引入python-memcached库,建立与服务器端的连接,端口号11211,建立好后可以与缓存服务器沟通,设置缓存,成功后会返回一个True校验是否把值写进去自增,类型int 、string都行自减pylibmc的操作演示:先引入pylibmc客户端库,同样与服务器端建立连接自增自减删除另一种方法赋值,删除等详细的设置命令:文章来源:麦子学院原文链接:/wiki/django/access/。

Memcache所有方法及参数详解

Memcache所有方法及参数详解

Memcache所有⽅法及参数详解memcache函数所有的⽅法列表如下:参考/manual/zh/function.Memcache-add.phpMemcache::add - 添加⼀个值,如果已经存在,则返回falseMemcache::addServer - 添加⼀个可供使⽤的服务器地址Memcache::close - 关闭⼀个Memcache对象Memcache::connect - 创建⼀个Memcache对象memcache_debug - 控制调试功能Memcache::decrement - 对保存的某个key中的值进⾏减法操作Memcache::delete - 删除⼀个key值Memcache::flush - 清除所有缓存的数据Memcache::get - 获取⼀个key值Memcache::getExtendedStats - 获取进程池中所有进程的运⾏系统统计Memcache::getServerStatus - 获取运⾏服务器的参数Memcache::getStats - 返回服务器的⼀些运⾏统计信息Memcache::getVersion - 返回运⾏的Memcache的版本信息Memcache::increment - 对保存的某个key中的值进⾏加法操作Memcache::pconnect - 创建⼀个Memcache的持久连接对象Memcache::replace -对⼀个已有的key进⾏覆写操作Memcache::set - 添加⼀个值,如果已经存在,则覆写Memcache::setCompressThreshold - 对⼤于某⼀⼤⼩的数据进⾏压缩Memcache::setServerParams - 在运⾏时修改服务器的参数Memcache::add⽤法bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )说明:如果key不存在的时候,使⽤这个函数来存储var的值。

memcache管理与应用

memcache管理与应用

Memcache管理与应用本章内容1.MemCache概述2.memcached的安装及管理3.使用Telnet作为memecached的客户端管理4.PHP的memcached管理接口5.memcached服务器的安全防护扩展:缓存:1.文件缓存:放在硬盘上2.内存缓存1.MemCache概述1.1 初识MemCacheMemcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。

简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

Memcache是danga的一个项目,最早是LiveJour MemCachenal 服务的,最初为了加速LiveJournal 访问速度而开发的,后来被很多大型的网站采用。

Memcached是以守护程序方式运行于一个或多个服务器中,随时会接收客户端的连接和操作。

1.2 MemCache在Web中的应用MemCache缓存系统最主要的就是为了提高动态网页应用,分担数据库检索的压力。

对于网站流量比较大的,可以使用memcache缓解数据库的压力,主要的焦点集中在以下两个方面:1. 使用MemCache作为中间缓存层减少数据库的压力。

2. MemCache分布式的应用。

2.1 Liunx下安装MemCached软件安装memcache源代码/files/memcached-1.4.10.tar.gz1.首先安装依赖包libeventyum –y install libevent *2. 主包已经安装,别忘记安装libevent-devel*,不然./configure过不去tar xzf /lamp/memcached-1.4.10.tar.gz 解压memcachedcd /lamp/memcached-1.4.10 进入memcached目录./configure --prefix=/usr/local/memcache 配置make && make install 编译与安装useradd memcache 添加memcache用户3.因为系统不能用root运行memcache软件/usr/local/memcache/bin/memcached –umemcache & #后台运行netstat –tunpl|grep :11211 查看端口telnet 192.168.10.1 11211 连接测试stats memcache命令:查看当前状态4.写入自启动:vi /etc/rc.local/usr/local/memcache/bin/memcached –umemcache &5.如何杀掉后台进程pkill memcached2.2 Windows下安装memcached软件1.1 在网上下载memcached-1.2.1-win32.zip。

Memcached命令详细解释

Memcached命令详细解释
-rwxr-xr-x 1 root root 202029 Nov 15 23:07 /usr/local/bin/memcached
windows下的安装
下载windows下的memcached程序:/memcached-win32/
解压之后双击安装即可。安装完毕可以在控制面板–》管理工具–》服务中看到已安装的服务信息:
1)安装libevent
cd /opt/install
tar zxvf libevent-1.4.12-stable.tar.gz
cd libevent-1.4.12-stable
./configure
make
make install
2)安装memcached,将软件上传到/opt文件夹下
VALUE userid 0 5 10
54321
END
#修改版本号位10的key=userid数据
cas userid 0 0 5 10
55555
#修改成功
STORED
#删除key=userid的数据
delete userid
#删除成功
DELETED
3)添加开机自启服务,在/etc/rc.local文件中加载启动命令,参数需要根据实际情况指定,如
管理说明
1)启动参数说明
如下命令是root用户以守护进程的形式启动 memcached,为其分配 256M 内存
memcached -d -m 256 -u root –c 10240
memcached -d -m 2048 -u root -c 10240
主要启动参数说明
-d
2)管理参数说明

memcached常用命令

memcached常用命令

memcached常用命令1、启动Memcache 常用参数-p <num> 设置TCP端口号(默认设置为: 11211)-U <num> UDP监听端口(默认: 11211, 0时关闭)-l <ip_addr> 绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问) -c <num> max simultaneous connections (default: 1024)-d 以daemon方式运行-u <username> 绑定使用指定用于运行进程<username>-m <num> 允许最大内存用量,单位M (默认: 64 MB)-P <file> 将PID写入文件<file>,这样可以使得后边进行快速进程终止, 需要与-d 一起使用更多可以使用者memcached -h在linux下:./usr/local/bin/memcached -d -u root -l 192.168.1.197 -m 2048 -p 12121在window下:d:\App_Serv\memcached\memcached.exe -d RunService -l 127.0.0.1 -p 11211 -m 500在windows下注册为服务后运行:sc.exe create M emcached_srv binpath= “d:\App_Serv\memcached\memcached.exe -d RunService -p 11211 -m 500″start= autonet start Memcached2、连接和退出telnet 127.0.0.111211quit3、基本命令五种基本memcached 命令执行最简单的操作。

这些命令和操作包括:setaddreplacegetdelete前三个命令是用于操作存储在memcached 中的键值对的标准修改命令。

memcache 基本操作命令

memcache 基本操作命令

服务器端端口默认是11211telnet ip 112111、add是新增add key flag expire length2、replace 替换replace key flag expire length参数和add是完全一样的3、set 是设置和修改值参数和add,replace一样,但是功能不一样 set相当于有add replace两者的功能set key flag expire length时,如果服务器无此键,那就是增加add的效果但是如果服务器有此键,那就是replace的效果command set无论如何都进行存储add只有数据不存在时进行添加repalce只有数据存在时进行替换append往后追加:append <key> datablock <status>?prepend往前追加:prepend <key> datablock <status>cas按版本号更改key字符串,<250个字符,不包含空格和控制字符flags客户端用来标识数据格式的数值,如json,xml,压缩等exptime存活时间s,0为永远,<30天60*60*24*30为秒数,>30天为unixtimebytes byte字节数,不包含\r\n,根据长度截取存/取的字符串,可以是0,即存空串datablock文本行,以\r\n结尾,当然可以包含\r或\nstatus STORED/NOT_STORED/EXISTS/NOT_FOUNDERROR/CLIENT_ERROR/SERVER_ERROR服务端会关闭连接以修复4、get /gets 查询get key返回key的值gets返回版本5、cas命令cas即check and set,只有版本号相匹配时才能存储,否则返回EXISTS设计意图:解决多客户端并发修改同一条记录的问题,防止使用经过改变了的value/key对6、incr,decr命令,增加/减小值得大小incr/decr key num7、delete 删除delete key删除指定的key。

Linux memcache操作命令

Linux memcache操作命令

Linux memcache操作命令1、启动memcache守护进程:# /usr/local/bin/memcached -d -m 200 -u root -l 192.168.1.91 -p 12301 -c 1 000 -P /tmp/memcached.pid相关解释如下:-d选项是启动一个守护进程,-m是分配给Memcache使用的内存数量,单位是MB,这里是200MB-u是运行Memcache的用户,如果当前为 root 的话,需要使用此参数指定用户。

-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.1.91-p是设置Memcache监听的端口,我这里设置了12301,最好是1024以上的端口-c选项是最大运行的并发连接数,默认是1024,这里设置了256-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid可以同时启动多个守护进程,但是端口不能重复2、查看启动的memcache服务:netstat -lp | grep memcached3、查看memcache的进程号:ps -ef | grep memcached4、杀死memcache进程:kill -9 进程id 或者kill `cat /tmp/memcached.pid`5、查看memcache进程数量:netstat -n | grep :端口号| wc -l6、查看memcache运行状态:telnet host port => telnet 127.0.0.1 11211连接上memcache,然后直接输入stats就可以得到当前memcache的状态。

memcache数据类型

memcache数据类型

memcache数据类型Memcache是一个开源、高性能、分布式的内存对象缓存系统。

它能够帮助开发者更快速、高效的处理大规模网站的数据访问。

Memcache支持多种数据类型,包括字符串、整数、布尔型、数组和对象等。

因此,在使用Memcache时,需要学会不同数据类型的存储和操作。

本文将围绕Memcache数据类型进行详细介绍。

一、字符串类型字符串是Memcache支持的最基本数据类型,使用起来非常简单。

可以通过set命令存储单个字符串,如下所示:```$memcache_obj->set("key1", "value1");```这样就将字符串"value1"存储在了"key1"的位置上。

通过get命令可以取出该字符串:```$value1 = $memcache_obj->get("key1")```二、整型类型Memcache还支持存储整型数据。

同样使用set和get命令,存储时将整型数据转化为字符串存储,取出时再将字符串转化为整型数据:```$memcache_obj->set("key2", 123);$value2 = $memcache_obj->get("key2")```三、布尔型类型布尔型数据在Memcache中同样可以存储。

但是,由于Memcache只支持字符串类型存储,因此布尔型数据需要转化为字符串类型后再进行存储。

例如,将true存储在"key3"的位置上:```$memcache_obj->set("key3", "true");```取出数据时,再将字符串类型转换为布尔型即可:```$value3 = ($memcache_obj->get("key3") == "true") ? true: false;```四、数组类型在Memcache中,存储数组类型数据比较复杂。

memchche学习详细总结

memchche学习详细总结

/article/2016-03-16/2826609(底层很详细)1、memcache本身完全不具备分布式的功能,memcache集群之间不会相互通信,所谓的分布式,完全依赖于客户端程序的实现。

2、一种集群的做法。

Eg:3个memcache缓存服务器,node1,node2,node3。

假如node2宕机了,那么node2上面存储的数据都不可以用了,此时由于集群中node1和node3还存在,下一次请求node2中存储的key值得时候,肯定是没有命中的,这时先从数据库中拿到要缓存的数据,然后根据路由算法模块根据key值在node1和node3中选取一个节点,把对应的数据放进去,这样下一次就又可以走缓存了,这种集群的做法很好,但是缺点是成本比较大。

3、内置的内存管理方式(memcache特征)所有的数据都保存在内存中,存取速度比硬盘快,当内存满后,通过LRU算法自动删除不使用的缓存,但没有考虑数据的容灾问题,重启服务,所有数据会丢失。

总结:其实很简单,memcache是php的一个扩展,用于php管理memcached(服务端),php-memcache.dll。

如果安装了memcached(服务端)不安装扩展,那么php无法操控memcach ed,但是命令行使用起来没有问题如果安装了PHP memcache客户端(php memcache和php memcached)。

但是没有安装memcached(服务端)服务,那么这个就无法使用只有同时安装了memcached(服务端)和PHP memcache客户端扩展才可以提高动态网站性能,在memcache缓存系统中,memcached充当了缓存服务器,php的扩展模块memcache和memcached充当了客户端,php可以通过它们和memcached服务器进行交互,初识memcache可能对这些概念不是十分清晰,没关系,随着我们深入的学习和应用之后,再回过头来看这些,相信会有一个比较深刻的理解Memcache简单认识(一)针对php中的memcache进行讲述。

Memcached命令行用法

Memcached命令行用法

Memcache 的命令行用法1、启动Memcache 常用参数memcached 1.4.3 -p <num> -U <num> 设置端口号(默认不设置为: 11211) UDP 监听端口(默认: 11211, 0 时关闭) -l <ip_addr> 绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1 就只能本机访问) -d 独立进程运行-u <username> 绑定使用指定用于运行进程<username> -m <num> -P <file> 如:在linux 下:./usr/local/bin/memcached -d -u jb-mc -l 192.168.1.197 -m 2048 -p 12121 在window 下:d:\App_Serv\memcached\memcached.exe -d RunService -l 127.0.0.1 -p 11211 -m 500 在windows 下注册为服务后运行:sc.exe create jb-Memcached binpath= “d:\App_Serv\memcached\memcached.exe -d RunService -p 11211 -m 500〃start= auto net start jb-Memcached 允许最大内存用量,单位M (默认: 64 MB) 将PID 写入文件<file>,这样可以使得后边进行快速进程终止, 需要与-d 一起使用2、连接:telnet 127.0.0.1 11211 不要说不会用这个?3、写入memcache <command name> <key> <flags> <exptime> <bytes>\r\n <data block>\r\n a) <command name> 可以是”set”, “add”, “replace”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
服务器当前的unix时间戳
version
memcache版本
pointer_size
当前操作系统的指针大小(32位系统一般是32bit)
rusage_user
进程的累计用户时间
rusage_system
进程的累计系统时间
curr_items
服务器当前存储的items数量
total_items
从服务器启动以后存储的items总数量
-h显示帮助
memcached的基本命令(当memcached启动后用于对memcached管理的数据和本身运行状态相关的命令):
Command
Description
Example
get
Reads a value
get mykey
set
Set a key unconditionally
set mykey 0 60 5
分配给memcache的内存大小(字节)
threads
当前线程数
prepend key 0 60 15
incr
Increments numerical key value by given number
incr mykey 2
decr
Decrements numerical key value by given number
decr mykey 5
delete
Deletes an existing key
bytes
当前服务器存储items占用的字节数
curr_connections
当前打开着的连接数
total_connections
从服务器启动以后曾经打开过的连接数
connection_structures
服务器分配的连接构造数
cmdห้องสมุดไป่ตู้get
get命令(获取)总请求次数
cmd_set
set命令(保存)总请求次数
stats slabs
Prints memory statistics
stats malloc
Print higher level allocation statistics
stats items
stats detail
stats sizes
Resets statistics
stats reset
version
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
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
-d uninstall卸载memcached服务
-u以的身份运行(仅在以root运行的时候有效)
-m最大内存使用,单位MB。默认64MB
-M内存耗尽时返回错误,而不是删除项
-c最大同时连接数,默认是1024
-f块大小增长因子,默认是1.25
-n最小分配空间,key+value+flags默认是48
get_hits
总命中次数
get_misses
总未命中次数
evictions
为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
bytes_read
总读取字节数(请求字节数)
bytes_written
总发送字节数(结果字节数)
limit_maxbytes
Prints server version.
version
verbosity
Increases log level
verbosity
quit
Terminate telnet session
quit
对查看的信息的关键字中英文对照表
pid
memcache服务器的进程ID
uptime
服务器已经运行的秒数
time
memcached的基本命令(安装、卸载、启动、配置相关):
-p监听的端口
-l连接的IP地址,默认是本机
-d start启动memcached服务
-d restart重起memcached服务
-d stop|shutdown关闭正在运行的memcached服务
-d install安装memcached服务
相关文档
最新文档