2.1 下载客户端jar 包 java_memcached-release_X.x.jar
可下载最新
三、简单Demo建工程、拷jar 包、再拷下面代码。
package com.ea.online.memcache;
import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class SimpleMemCachedClient {
protected static MemCachedClient mcc = new MemCachedClient();
protected static SockIOPool sUpool = null;
static {
String[] servers = { "localhost:11211" };
Integer[] weights = { 3, 3, 2 };
sUpool = SockIOPool.getInstance();
sUpool.setServers(servers);
sUpool.setWeights(weights);
sUpool.setMaintSleep(30);
sUpool.setNagle(false);
sUpool.setSocketTO(3000);
sUpool.setSocketConnectTO(0);
sUpool.initialize();
}
public static void main(String[] args) {
mcc.set("testKey", "This is a test String",
new Date(new Date().getTime() + 10000));// 过期时间为10秒
String bar = mcc.get("testKey").toString();
System.out.println("testKey-->" + bar);
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(mcc.get("testKey"));
}
}
}
Demo 成功后就讲 下面两个类的一些设置参数:SockIOPool 、MemCachedClient
四、SockIOPool 是socket 连接池类
setServers(String[] servers) :设置服务器信息数组;
setWeights(String[] weights) :设置服务器权重数组;
setInitConn(int count) :设置初始连接数;
setMinConn(int minConn) :设置最小连接数;
setMaxConn(int maxConn) :设置最大连接数;
setMaxIdle(long arg0) :设置最大处理时间;
setMaintSleep(long arg0) :主线程的睡眠时间;
initialize() :初始化连接池。
五、MemCachedClient 类及其常用方法
add(String key, Object value) :添加一个键值对到缓存中;
add(String key, Object value,Date expires) :添加一个键值对到缓存中,并设置其超时时间;
set(String key, Object value) :在缓存中设置一个键的值;
set(String key, Object value, Date expires) :在缓存中设置一个键的值,并设置其超时时间;
get(String key) :获得某个键的值。
incr(String key) :为某个键上的值执行+1 操作;
decr(String key) :为某个键上的值执行-1 操作;
replace(String key, String value) :将某个键的值替换成新的值;
replace(String key, String value, Date expires) :将某个键的值替换成新的值,并设置其超时时间。
六、Memcached 优化
可以参考: hyj_dx http://hyj-dx.iteye.com/blog/305161
1、客户端在与 memcached 服务建立连接之后,进行存取对象的操作,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。注意,这些对象并不是持久的,服务停止之后,里边的数据就会丢失。
2、当存入cached的数据超过了cached的容量后会将最长时间没调用的对象挤出,这正好应征了cached的特征。
3、利用memcached常用的做法:在每取得一次cached对象后,重新设置这个对象的cache时间,这样能够使得经常被调用的对象可以长期滞留在缓存中,使得效率增倍。
memcached 技术配置参数研究
failover表示对于服务器出现问题时的自动修复。
initConn初始的时候连接数,
minConn表示最小闲置连接数,
maxConn最大连接数,
maintSleep表示是否需要延时结束
nagle是TCP对于socket创建的算法,
socketTO是socket连接超时时间,
aliveCheck表示心跳检查,确定服务器的状态。
Servers是memcached服务端开的地址和ip列表字符串,
weights是上面服务器的权重,必须数量一致,否则权重无效
可从以下几方面考虑优化
1. 重新设置配置参数。
2. 尽量使用小容量的数据内容.
3. 增加memcached提高服务获取的内存总量、提高命中率。
4. 可以采用多个memcache服务进行侦听,分开处理,针对服务提供的频繁度划分服务内存
5. 根据服务器的性能不同设置权重 weights
6. 对需要使用memcache服务的机器ip,服务端做访问限制。
避免memcached里的数据不会被别有心意的人再利用,或责保证服务器的内存不被漫天遍地的垃圾数据所堆积,造成命中极低
7. 优化memcached客户端的代码。
、、、、、、、、、、
七、小技巧
h 显示帮助
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认为64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认为1024
-f 块大小增长因子,默认为1.25
-n 最小分配空间,key+value+flags默认为48
相关推荐
本篇文章是对通过stats命令分析Memcached的内部状态进行了详细的分析介绍,需要的朋友参考下
访问量上升,数据库压力大,怎么办?好办法是在中间挡一层缓存!这个缓存要求高效,不能比数据库慢,否则服务质量受影响;如果能把数据用hash打散存储到硬盘,也是可以的,不过在内存越来越便宜的今天,还是使用内存...
memcached 命令行状态全解,详细简单
memcached的基本命令,windows下面绑定服务,默认设置在window下面不会生效,用sc命令可以让设置生效.
Memcached stats sizes 命令 Memcached stats sizes 命令用于显示所有item的大小和个数。 该信息返回两列,第一列是 item 的大小,第二列是 item 的个数。 语法: stats sizes 命令的基本语法格式如下: stats ...
memcached的线程模型分析,memcached网络事件处理的最核心部分分析
分析每个slabs的内存使用情况,浪费了...memcached.py 172.16.1.1:11211 start # shows stats memcached.py 172.16.1.1:11211 dump 3 100 # shows 3 item 100 keys memcached.py 172.16.1.1:11211 get key # get key
memcached源代码分析
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。... 运行命令: memcached.exe -vv
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。... 运行命令: memcached.exe -vv
linux下安装memcached详细步骤,加安装包
memcached-win64安装包 内含详细安装命令说明文件:说明.txt windows上保证安装成功。
STATS命令 遍历memcached缓存对象(C#)转载之青草堂 出于性能考虑,memcached没有提供遍历功能,不过我们可以通过以下两个stats命令得到所有的缓存对象。 1、stats items 显示各个slab中item的数目。 2、stats ...
在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装 3. 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动...
Memcached内存分析、调优、集群,好资料一齐分享
memcached, libevent, MemCachedClient
Memcached源码分析之内存管理Memcached源码分析之内存管理
memcached是分布式高效内存对象缓存系统
Memcached 的使用和协议分析详解