参数不算多,我们来启动一个Memcache的服务器端:
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid
-d选项是启动一个守护进程,-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,-u是运行Memcache的用户,我这里是root,-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,如果要结束Memcache进程,执行:
# kill `cat /tmp/memcached.pid`
get key1
END
set key1 0 3600 3
123
STORED
incr key1 5
128
decr key1 5
123
delete key1
DELETED
get key1
END
quit
delete 命令格式: delete <key>
基本 memcached 客户机命令
您将使用五种基本 memcached 命令执行最简单的操作。这些命令和操作包括:
set
add
replace
get
delete
前三个命令是用于操作存储在 memcached 中的键值对的标准修改命令。它们都非常简单易用,且都使用清单 5 所示的语法:
清单 5. 修改命令语法
command <key> <flags> <expiration time> <bytes>
<value>
表 1 定义了 memcached 修改命令的参数和用法。
表 1. memcached 修改命令参数
参数 用法
key key 用于查找缓存值
flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
expiration time 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes 在缓存中存储的字节点
value 存储的值(始终位于第二行)
现在,我们来看看这些命令的实际使用。
1)set
set 命令用于向缓存添加新的键值对。如果键已经存在,则之前的值将被替换。
注意以下交互,它使用了 set 命令:
set userId 0 0 5
12345
STORED
2)add
仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应NOT_STORED。
3)replace
仅当键已经存在时,replace 命令才会替换缓存中的键。如果缓存中不存在键,那么您将从 memcached 服务器接受到一条 NOT_STORED 响应。
4)get
get 命令用于检索与之前添加的键值对相关的值。您将使用 get 执行大多数检索操作。
5)delete
最后一个基本命令是 delete。delete 命令用于删除 memcached 中的任何现有值。您将使用一个键调用 delete,如果该键存在于缓存中,则删除该值。如果不存在,则返回一条 NOT_FOUND 消息。
6)gets
gets 命令的功能类似于基本的 get 命令。两个命令之间的差异在于,gets 返回的信息稍微多一些:64 位的整型值非常像名称/值对的 “版本” 标识符。
7)cas
cas(check 和 set)是一个非常便捷的 memcached 命令,用于设置名称/值对的值(如果该名称/值对在您上次执行 gets 后没有更新过)。它使用与 set命令相类似的语法,但包括一个额外的值:gets 返回的额外值。
set userId 0 0 5
55555
STORED
gets userId
VALUE userId 0 5 6
55555
END
cas userId 0 0 5 6
33333
STORED
8)stats
stats 命令的功能正如其名:转储所连接的 memcached 实例的当前统计数据。在下例中,执行 stats 命令显示了关于当前 memcached 实例的信息:
STAT pid 22459 进程ID
STAT 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 0
STAT auth_errors 0
STAT bytes_read 15785 读取字节总数
STAT bytes_written 15222 写入字节总数
STAT limit_maxbytes 1048576 分配的内存数(字节)
STAT accepting_conns 1 目前接受的链接数
STAT listen_disabled_num 0
STAT threads 4 线程数
STAT conn_yields 0
STAT bytes 0 存储item字节数
STAT curr_items 0 item个数
STAT total_items 34 item总数
STAT evictions 0 为获取空间删除item的总数
9)flush_all
flush_all 是最后一个要介绍的命令。这个最简单的命令仅用于清理缓存中的所有名称/值对。如果您需要将缓存重置到干净的状态,则 flush_all 能提供很大的用处。下面是一个使用 flush_all 的例子:
view plaincopy to clipboardprint?
set userId 0 0 5
55555
STORED
get userId
VALUE userId 0 5
55555
END
flush_all
OK
get userId
END
10)计算缓存命中率
view plaincopy to clipboardprint?
stats
STAT pid 6825
STAT uptime 540692
STAT time 1249252262
STAT version 1.2.6
STAT pointer_size 32
STAT rusage_user 0.056003
STAT rusage_system 0.180011
STAT curr_items 595
STAT total_items 961
STAT bytes 4587415
STAT curr_connections 3
STAT total_connections 22
STAT connection_structures 4
STAT cmd_get 2688
STAT cmd_set 961
STAT get_hits 1908
STAT get_misses 780
STAT evictions 0
STAT bytes_read 5770762
STAT bytes_written 7421373
STAT limit_maxbytes 536870912
STAT threads 1
END
现在,用 get_hits 的数值除以 cmd_gets。在本例中,您的命中率大约是 71%。在理想情况下,您可能希望得到更高的百分比 — 比率越高越好
分享到:
相关推荐
Memcached原理和使用详解 Memcached是一种高性能的分布式内存缓存服务器,主要用于减少数据库查询次数,提高动态Web应用的速度和可扩展性。其开发团队来自LiveJournal,官网为http://www.danga.com/memcached/。 ...
通过telnet工具连接至本地Memcached服务(默认端口11211),使用`stats`命令查询服务状态,返回的信息包括: - `time`: 当前Unix时间戳。 - `total_items`: 自服务启动以来存储的items总数。 - `connection_...
可以使用 Telnet 连接 Memcached 服务,例如 `telnet 127.0.0.1 11211`,然后使用 `stats` 命令查看缓存服务的状态。会返回如下的数据: * `time` 服务器当前的 Unix 时间戳 * `total_items` 从服务器启动以后存储...
**Memcached Windows 下安装与测试详解** Memcached是一款高性能、分布式的内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载。它通过在内存中存储数据和对象来加速动态Web应用的运行速度。在Windows...
**知识点详解:memcached的基本命令与管理** Memcached是一款高性能的分布式内存对象缓存系统,通过减轻数据库负载来加速动态Web应用,提升网站访问速度。本文将深入解析memcached的基本命令,涵盖其安装、配置、...
**Memcached 安装详解** Memcached 是一个高性能的分布式内存对象缓存系统,它能够通过缓存数据库查询结果来减少数据库访问,从而提高Web应用的性能。在本文中,我们将详细探讨如何在Linux环境下安装和配置...
### Memcached中文学习文档知识点详解 #### 一、Memcached简介 Memcached是一种高性能的分布式内存对象缓存系统,用于加速动态Web应用程序通过减轻数据库负载。它通过在内存中缓存数据和对象来减少数据库访问的频率...
### Linux环境下Memcached安装及配置使用详解 #### 一、Memcached简介 Memcached是一款高性能、分布式内存对象缓存系统,用于加速动态Web应用程序的速度,减轻数据库负担。它通过在内存中缓存数据和对象来减少读取...
在Windows环境下,可以通过telnet或者专门的客户端工具(如 `Memcached Manager`)与 `memcached` 进行交互,进行添加、删除、检索和更新缓存的操作。同时,`memcached` 支持多种编程语言的客户端库,如PHP、Python...
### Memcached 安装与配置详解 #### 一、Memcached 概述 Memcached 是一款高性能的分布式内存缓存服务器,由 LiveJournal 旗下的 Danga Interactive 公司的 Brad Fitzpatrick 领导开发。它被广泛应用于提高 Web ...
下面详细分析了Memcached的启动过程以及使用telnet命令进行交互时的常用命令。 启动Memcached常用参数包括: 1. -p<num>:指定监听的TCP端口号,Memcached默认监听11211端口。 2. -U<num>:指定监听的UDP端口号,...
3. **命令行工具`: `memcached-client`或`telnet`可以直接与Memcached服务通信,进行测试和调试。 **五、源码分析** Memcached的源码主要由C语言编写,包括了服务器端和客户端的实现。源码阅读可以帮助理解其内部...
**memcached x86_x64 安装详解** memcached 是一款广泛应用于现代Web开发中的开源、高性能、分布式内存对象缓存系统。它旨在通过将数据存储在内存中,减少对数据库的直接访问,从而显著提升应用的响应速度和整体...
**Windows Server 上的 Memcached 安装与使用详解** Memcached 是一款高性能、分布式内存对象缓存系统,常用于减轻数据库负载,提升Web应用的性能。在Windows Server环境下,我们同样可以利用Memcached来实现数据...
**memcached源代码详解** `memcached`是一个高性能的分布式内存对象缓存系统,它用于在动态系统中减少数据库负载,提升网站性能。这个压缩包包含的是`memcached`的源代码,允许开发者深入理解其内部工作原理,并...
3. **启动与配置**:通过`memcached`命令启动服务,配置文件通常位于`/etc/memcached.conf`,可根据需求调整参数,如内存大小、监听端口等。 4. **客户端连接**:使用各种编程语言的客户端库与Memcached交互,例如...
**Memcached 安装详解** Memcached 是一个高性能、分布式内存对象缓存系统,它广泛应用于Web应用中,用于减轻数据库负载,提高数据访问速度。本文将详细介绍如何在不同的操作系统上安装和配置 Memcached。 ## 一、...
**Memcached与Java实例文档详解** Memcached是一种高性能、分布式内存对象缓存系统,它能够减轻数据库的负担,提高Web应用的性能。在Java开发环境中,Memcached被广泛用于存储临时数据,提升应用响应速度。本文将...