虽然在这个年代谈memcached 可能有点晚,大多数cached 应用都在redis 上面,下面将谈谈自已的一些看法,
本文档不做memcached 理论说明,只写实验数据及结果。
基本参数:可以参考下(其中带 # # 为应该掌握的参数)
-U # #<num> 监听的UDP端口(默认: 11211, 0表示不监听) -s #<file> 用于监听的UNIX套接字路径(禁用网络支持) -a #<mask> UNIX套接字访问掩码,八进制数字(默认:0700) -l # #<ip_addr> 监听的IP地址。(默认:INADDR_ANY,所有地址) -d # #作为守护进程来运行。 -r # #最大核心文件限制。 -u # #<username> 设定进程所属用户。(只有root用户可以使用这个参数) -m # #<num> 单个数据项的最大可用内存,以MB为单位。(默认:64MB) -M #内存用光时报错。(不会删除数据) -c # #<num> 最大并发连接数。(默认:1024) -k #锁定所有内存页。注意你可以锁定的内存上限。 ##试图分配更多内存会失败的,所以留意启动守护进程时所用的用户可分配的内存上限。 ##(不是前面的 -u <username> 参数;在sh下,使用命令"ulimit -S -l NUM_KB"来设置。) -v #提示信息(在事件循环中打印错误/警告信息。) -vv #详细信息(还打印客户端命令/响应) -vvv #超详细信息(还打印内部状态的变化) -h #打印这个帮助信息并退出。 -i #打印memcached和libevent的许可。 -P # #<file> 保存进程ID到指定文件,只有在使用 -d 选项的时候才有意义。 -f #<factor> 块大小增长因子。(默认:1.25) -n #<bytes> 分配给key+value+flags的最小空间(默认:48) -L #尝试使用大内存页(如果可用的话)。提高内存页尺寸可以减少"页表缓冲(TLB)"丢失次数,提高运行效率。 #为了从操作系统获得大内存页,memcached会把全部数据项分配到一个大区块。 -D #<char> 使用 <char> 作为前缀和ID的分隔符。 #这个用于按前缀获得状态报告。默认是":"(冒号)。 #如果指定了这个参数,则状态收集会自动开启;如果没指定,则需要用命令"stats detail on"来开启。 -t # #<num> 使用的线程数(默认:4) -R # #每个连接可处理的最大请求数。
-x # #repcached 用来指定Master IP 的配置 : -x <IP>
-X # #repcached 用来指定Master PORT 的配置:-X <PORT>
实现采用两台机器做 主-主、主-从、三台机器、抓包分析获得:
######配置 #主1 memcached -d -v -m 100 -u root -l 192.168.1.253 -p 12000 -c 1024 -x 192.168.1.254 -X 11212 -P /tmp/memcached.pid #从2 memcached -d -v -m 100 -u root -l 192.168.1.254 -p 12001 -c 1024 -P /tmp/memcached.pid -x 192.168.1.253 -X 11212 ##结论1 # repcache-memcached 双主从中步时,两台可同时进行 get , set 等操作 ##结论2 # 当一台主意外停掉memcached 时(实验中采用 kill 掉) ,再次启动memcached 时会在另一台内存中copy 一份实时数据到自已内存中 -- 重要 ##结论3 # 如果不指定 -x -X 参数的memcached 停掉时,再次启动时 [不会] 在其它memcached 中复制数据到内存中 ##结论4 # 192.168.1.253(12000)[-x 192.168.1.254 -X 11212] <--------> 192.168.1.254(12001)[-x 192.168.1.253 -X 11212] # | | # | | # | | # 192.168.1.243(12002)[ -x 192.168.1.253 -X 11212 或者 -x 192.168.1.254 -X 11212] 都不成都 # # 实验结论: repcached 只能做两台复制 只能 主-主模式 或者 主-从模式 # repcached 不能单主-双从模式, 不能双主多重模式 ##结论5 # repcached-memcached 数据同步底层使用TCP长链接发送数据,数据处于明文状态 ##结论6 # repcached-memcached 从在启动时, 从首先利用配置中的 -x -X 指定的IP,端口与主建立TCP持久连接, # 链接建立完成后 主开始发送 内存数据给从,一条发送一条内存数据, # 主最后一条发送完成标志给从,告诉从数据已经发送完成,从初始化内存数据并开始对处提供服务. ##结论7 # 利用iptables 模拟断网过程 # 当断网到恢复状态时,双主环境可以重新同步内存数据 # 当断网到恢复状态时,双从环境下,只有从同步主中内存数据而主并不会同步从中内存数据(完全靠 -x -X 来指定连立新的TCP连接来同步) # 同步后恢复正常状态使用
原文地址:http://blog.csdn.net/stp5555/article/details/41142519