外观
Memcached 管理命令
基本命令格式
连接方式
- Telnet 连接:bash
telnet <hostname> <port> - Netcat 连接:bash
nc <hostname> <port> - 示例:bash
telnet localhost 11211
命令语法
- 基本格式:
command [key] [flags] [exptime] [bytes] [noreply] - 参数说明:
command:命令名称key:数据键flags:存储标志,用于客户端存储附加信息exptime:过期时间(秒),0表示永不过期bytes:数据大小(字节)noreply:可选,不返回响应
统计命令
stats
- 功能:获取Memcached的基本统计信息
- 语法:
stats - 输出示例:
STAT pid 12345 STAT uptime 3600 STAT time 1234567890 STAT version 1.6.12 STAT libevent 2.1.12-stable STAT pointer_size 64 STAT rusage_user 0.123456 STAT rusage_system 0.067890 STAT curr_connections 10 STAT total_connections 100 STAT connection_structures 11 STAT reserved_fds 20 STAT cmd_get 50 STAT cmd_set 20 STAT cmd_flush 0 STAT cmd_touch 0 STAT get_hits 45 STAT get_misses 5 STAT delete_misses 0 STAT delete_hits 0 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT touch_hits 0 STAT touch_misses 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 12345 STAT bytes_written 67890 STAT limit_maxbytes 67108864 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 0 STAT hash_power_level 16 STAT hash_bytes 524288 STAT hash_is_expanding 0 STAT slab_reassign_rescues 0 STAT slab_reassign_chunk_rescues 0 STAT slab_reassign_evictions_nomem 0 STAT slab_reassign_inline_reclaim 0 STAT slab_reassign_busy_items 0 STAT slab_reassign_busy_deletes 0 STAT slab_reassign_running 0 STAT slabs_moved 0 STAT lru_crawler_running 0 STAT lru_crawler_starts 123 STAT lru_maintainer_juggles 456 STAT malloc_fails 0 STAT log_worker_dropped 0 STAT log_worker_written 0 STAT log_watcher_skipped 0 STAT log_watcher_sent 0 STAT bytes 12345 STAT curr_items 15 STAT total_items 20 STAT slab_global_page_pool 0 STAT expired_unfetched 0 STAT evicted_unfetched 0 STAT evicted_active 0 STAT evictions 0 STAT reclaimed 0 STAT crawler_reclaimed 0 STAT crawler_items_checked 0 STAT lrutail_reflocked 0 STAT moves_to_cold 0 STAT moves_to_warm 0 STAT moves_within_lru 0 STAT direct_reclaims 0 STAT lru_bumps_dropped 0 END
stats items
- 功能:获取各个Slab Class的Item统计信息
- 语法:
stats items - 输出示例:
STAT items:1:number 10 STAT items:1:age 3600 STAT items:1:evicted 0 STAT items:1:evicted_nonzero 0 STAT items:1:evicted_time 0 STAT items:1:outofmemory 0 STAT items:1:tailrepairs 0 STAT items:1:reclaimed 0 STAT items:1:expired_unfetched 0 STAT items:1:evicted_unfetched 0 STAT items:1:crawler_reclaimed 0 STAT items:1:crawler_items_checked 0 STAT items:1:lrutail_reflocked 0 STAT items:1:moves_to_cold 0 STAT items:1:moves_to_warm 0 STAT items:1:moves_within_lru 0 STAT items:1:direct_reclaims 0 STAT items:1:lru_bumps_dropped 0 END
stats slabs
- 功能:获取各个Slab Class的详细统计信息
- 语法:
stats slabs - 输出示例:
STAT 1:chunk_size 48 STAT 1:chunks_per_page 21845 STAT 1:total_pages 1 STAT 1:total_chunks 21845 STAT 1:used_chunks 10 STAT 1:free_chunks 21835 STAT 1:free_chunks_end 0 STAT 1:mem_requested 320 STAT 1:get_hits 45 STAT 1:cmd_set 20 STAT 1:delete_hits 0 STAT 1:incr_hits 0 STAT 1:decr_hits 0 STAT 1:cas_hits 0 STAT 1:cas_badval 0 STAT 1:touch_hits 0 STAT active_slabs 1 STAT total_malloced 1048576 END
stats sizes
- 功能:获取不同大小Item的统计信息
- 语法:
stats sizes - 输出示例:
STAT 96 10 END - 说明:表示有10个大小为96字节的Item
监控命令
stats reset
- 功能:重置统计信息(仅重置部分统计,如cmd_get、cmd_set等)
- 语法:
stats reset - 注意事项:生产环境谨慎使用,会丢失历史统计数据
stats cachedump
- 功能:列出指定Slab Class中的键
- 语法:
stats cachedump <slab_class> <limit> - 参数说明:
slab_class:Slab Class IDlimit:返回键的数量限制
- 输出示例:
ITEM key1 [32 b; 1234567890 s] ITEM key2 [48 b; 1234567890 s] END
stats detail
- 功能:获取详细的命令统计信息
- 语法:
stats detail [<on|off|dump>] - 参数说明:
on:开启详细统计off:关闭详细统计dump:输出详细统计信息
- 输出示例:
DETAIL on STAT detail:cmd_get 50 STAT detail:cmd_set 20 END
维护命令
flush_all
- 功能:清空所有缓存数据
- 语法:
flush_all [<delay>] [<noreply>] - 参数说明:
delay:可选,延迟清空的时间(秒)noreply:可选,不返回响应
- 输出:
OK - 注意事项:生产环境谨慎使用,会清空所有缓存数据
version
- 功能:获取Memcached版本信息
- 语法:
version - 输出示例:
VERSION 1.6.12
verbosity
- 功能:调整日志级别
- 语法:
verbosity [<level>] - 参数说明:
level:日志级别(0-3),0表示关闭日志,3表示最详细
- 输出:
OK
quit
- 功能:关闭连接
- 语法:
quit
调试命令
stats malloc
- 功能:获取内存分配统计信息
- 语法:
stats malloc - 输出示例:
STAT malloc_count 100 STAT malloc_size 1048576 STAT free_count 50 STAT free_size 524288 END
stats maps
- 功能:获取内存映射统计信息
- 语法:
stats maps - 输出示例:
MAP 0: 0x7f1234567000 - 0x7f1234667000 (1048576 bytes) END
stats sizes
- 功能:获取不同大小Item的分布情况
- 语法:
stats sizes - 输出示例:
STAT 96 10 STAT 120 5 END
SASL认证命令
auth list
- 功能:获取支持的认证机制
- 语法:
auth list - 输出示例:
MECH plain END
auth plain
- 功能:使用plain认证机制进行认证
- 语法:
auth plain <credentials> - 参数说明:
credentials:Base64编码的认证信息,格式为\0username\0password
- 输出:
OK或ERROR
常见问题(FAQ)
Q1: 如何查看Memcached的连接数?
A1: 使用stats命令,查看curr_connections(当前连接数)和total_connections(总连接数)指标。
Q2: 如何查看Memcached的命中率?
A2: 使用stats命令,计算命中率:get_hits / (get_hits + get_misses) * 100%。
Q3: 如何查看Memcached的内存使用情况?
A3: 使用stats命令,查看bytes(当前使用内存)和limit_maxbytes(配置的最大内存)指标。
Q4: 如何清空Memcached的缓存?
A4: 使用flush_all命令可以清空所有缓存数据。如果需要延迟清空,可以使用flush_all <delay>命令。
Q5: 如何列出Memcached中的所有键?
A5: 可以使用stats cachedump <slab_class> <limit>命令列出指定Slab Class中的键,需要遍历所有Slab Class才能获取所有键。生产环境谨慎使用,可能影响性能。
Q6: 如何查看Memcached的版本信息?
A6: 使用version命令可以获取Memcached的版本信息。
Q7: 如何调整Memcached的日志级别?
A7: 使用verbosity [<level>]命令可以调整日志级别,0表示关闭日志,3表示最详细。
Q8: 如何查看Memcached的线程数?
A8: 使用stats命令,查看threads指标。
Q9: 如何查看Memcached的命令统计信息?
A9: 使用stats命令可以查看基本的命令统计信息,如cmd_get、cmd_set等。使用stats detail dump命令可以获取更详细的命令统计信息。
Q10: 如何重置Memcached的统计信息?
A10: 使用stats reset命令可以重置统计信息,但会丢失历史统计数据,生产环境谨慎使用。
