Memcached

来自ling
跳转至: 导航搜索

linux 参考悦商宝龙项目环境运维#老pd更换Memcache

安装Memcached为服务并设置开机启动

以管理员权限运行目录下的installservice.bat

会将Memcached设置成一个服务.

在服务管理中倒找Memcached服务,运行服务,并将服务设置为自动运行

Memcached将以默认端口11211提供缓存服务

可以通过telnet 127.0.0.1 11211测试服务是否正在运行


Memchched的内存优化

1、先关闭memcached服务

2、进入注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server, 在其中有一个ImagePath项,值为"c:\server\memcached\memcached.exe" -d runservice,在后面加上-l 127.0.0.1 -m 300 -c 2048

3、启动memcached服务,这样就将memcached的最大内存修改为了300MB了 3) Memcached的使用

Memcache主要是在tomcat中使用

首先在tomcat\lib下放入如下几个jar包

配置位置为tomcat\conf\server.xml

内容如下:

<Context path="" docBase="F:/Report/tr/war/TR_201_job" debug="0" useHttpOnly="true">
	<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 
		memcachedNodes="n1:10.172.128.201:11211"          							 
		requestUriIgnorePattern=".*\.(png|gif|jpg|css|js|ico|jpeg|htm|html)$"			
		sticky="false"				 
		sessionBackupAsync="false"							 
		sessionBackupTimeout="60000"
		lockingMode="auto"														 
		copyCollectionsForSerialization="false"							 
		transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>
</Context>

使用

https://www.cnblogs.com/z-sm/p/5691780.html

先:telnet localhost 11211
写:set time 2016
读:get time
查看状态:stats
        pid                     Memcached 进程ID    
        uptime                  Memcached 运行时间,单位:秒    
        time                    Memcached 当前的UNIX时间    
        version                 Memcached 的版本号    
        rusage_user             该进程累计的用户时间,单位:秒   
        rusage_system           该进程累计的系统时间,单位:秒    
        curr_items              Memcached 当前存储的内容数量    
        total_items             Memcached 启动以来存储过的内容总数    
        bytes                   Memcached 当前存储内容所占用的字节数(*/1024/1024=mb)    
        curr_connections        当前连接数量    
        total_connections       Memcached 运行以来接受的连接总数    
        connection_structures   Memcached 分配的连接结构的数量    
        cmd_get                 查询请求总数    
        cmd_set                 存储(添加/更新)请求总数    
        ...
        get_hits                查询成功获取数据的总次数    
        get_misses              查询成功未获取到数据的总次数   
        bytes_read              Memcached 从网络读取到的总字节数    
        bytes_written           Memcached 向网络发送的总字节数   
        limit_maxbytes          Memcached 在存储时被允许使用的字节总数
退出telnet:quit


linux安装和启动

memcached -d -m 48g -p 11211 -P /tmp/memcached.pid -c 1024 -f 1.25 -n 80 -t 16 
-d选项是启动一个守护进程, 
-m是分配给Memcache使用的内存数量,单位是MB,我这里是100MB, 
-t线程数,默认是4,可以根据CPU线程数设置,注意,此参数特别关键,设置数量不能超过服务器CPU总线程数WARNING: Setting a high number of workerthreads is not recommended.Set this value to the number of cores in your machine or less. 
-u是运行Memcache的用户,我这里是root, 
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.36.200, 
-p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,我们这里统一使用11211 
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定。 
-P是设置保存Memcache的pid文件,我这里是保存在/tmp/memcached.pid 
-f是chunk的增长因子(默认: 1.25) 
-n是chunk最小尺寸 
-M是禁止LRU(Least Recently Used) 
-L修改page尺寸,默认1M,如果要保存大对象,这个参数必须要修改 

-p 指定端口号(默认11211)  
-U <num> UDP监听端口 (默认: 11211, 0 时关闭) 
-s <file>     用于监听的UNIX套接字路径(禁用网络支持)
-a <mask>     UNIX套接字访问掩码,八进制数字(默认:0700)
-m 指定最大使用内存大小(默认64MB)   
-t 线程数(默认4)   

-l <ip_addr> 绑定地址 (默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问) 
-d start 启动memcached服务   
-d restart 重起memcached服务   
-d stop|shutdown 关闭正在运行的memcached服务   
-u <username> 绑定使用指定用于运行进程 <username>  (只有root用户可以使用这个参数)
-P <file> 将PID写入文件<file>,这样可以使得后边进行快速进程终止, 需要与 -d 一起使用
-m 最大内存使用,单位MB。默认64MB   
-M 内存耗尽时返回错误,而不是删除项   
-c 最大同时连接数,默认是1024 
-f 块大小增长因子,默认是1.25 
-n <bytes>最小分配空间,key+value+flags默认是48

-k锁定所有内存页。注意你可以锁定的内存上限。
              试图分配更多内存会失败的,所以留意启动守护进程时所用的用户可分配的内存上限。
              (不是前面的 -u <username> 参数;在sh下,使用命令"ulimit -S -l NUM_KB"来设置。)
-v 提示信息(在事件循环中打印错误/警告信息。)
-vv 详细信息(还打印客户端命令/响应)
-vvv 超详细信息(还打印内部状态的变化)
-h 打印这个帮助信息并退出。
-i  打印memcached和libevent的许可。
-L 尝试使用大内存页(如果可用的话)。提高内存页尺寸可以减少"页表缓冲(TLB)"丢失次数,提高运行效率。
              为了从操作系统获得大内存页,memcached会把全部数据项分配到一个大区块。
-D <char>     使用 <char> 作为前缀和ID的分隔符。
              这个用于按前缀获得状态报告。默认是":"(冒号)。
              如果指定了这个参数,则状态收集会自动开启;如果没指定,则需要用命令"stats detail on"来开启。
-t <num>      使用的线程数(默认:4)
-R 每个连接可处理的最大请求数。
-C 禁用CAS。
-b 设置后台日志队列的长度(默认:1024)
-B 绑定协议 - 可能值:ascii,binary,auto(默认)
-I 重写每个数据页尺寸。调整数据项最大尺寸。