- 浏览: 705021 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (260)
- web 开发 (44)
- struts (14)
- java (39)
- 我的感受 (2)
- ajax (2)
- spring (22)
- Hibernate (4)
- struts2 (1)
- java 面试题 (1)
- 英语 学习类 (2)
- jdk1.6特性 (1)
- extjs (13)
- oracle (3)
- JQuery (3)
- ┠ 『Spring 3.0』 ┨ (1)
- 『LOG4J』 (2)
- 『常用数据』 (1)
- JavaMail (0)
- 〓『 EJB3.0 』〓 (0)
- HTML5 (5)
- Canvas (0)
- spring2.5 (0)
- HPH 5 (1)
- C# .net (0)
- UML (1)
- REST (2)
- JS_validate (1)
- 项目管理文章 (1)
- 闲聊闲记 (12)
- SQL-SQL (3)
- javascript (18)
- js (4)
- linux (8)
- 电子政务 (1)
- 项目对象模型 (1)
- 系统集成项目管理 (1)
- shell (2)
- mysql (1)
- solr (5)
- cxf;services (2)
- 11 (0)
- 缓存 (1)
- cached (3)
- 单片机通信 (1)
- cached;oscache (1)
- android (15)
- android;蓝牙 (1)
- Lucene (5)
- TTS (1)
- 网络爬虫 (1)
- HtmlCleaner (1)
- iPhone (2)
- 有感而发 (1)
- Python (0)
- jetty (1)
- Redis (1)
- hadoop (1)
- socket (1)
- 色彩顾问 (1)
- javaapns (1)
- bat (1)
- object-c (4)
- ios (4)
- C-学习 (1)
- 搜索 (1)
- c# (1)
最新评论
-
annie211:
Angularjs构建一个CRUD应用可能用到的全部内容包括:数据绑定、基本模板标识符、表单验证、路由、深度链接、组件重用、依赖注入 -
潇寒听竹:
你好,请问您上传的那个APK为什么每次只能识别一次,不能连续识 ...
pocketsphinxAdroid离线语音识别---入门 -
ichenwenjin:
Angularjs构建一个CRUD应用可能用到的全部内容包括:数据绑定、基本模板标识符、表单验证、路由、深度链接、组件重用、依赖注入 -
NN_iaoiao:
问一下 你的这个People 类 是自定义的还是android ...
android 获取电话本中的联系人列表 -
wangzhe_real:
对于刚接触的我是一个很详细的教程,太感谢了
JAX-RS cxf web服务 rest简单增删改查 集成spring webService
Java_memcached-release
一、了解和使用使用安装memcached
在这一块已经有车了,就不再造了。
一个日本君写的: 长野雅广 memcached- 全面剖析.pdf
heiyeluren( 黑夜路人) Memcached- 原理和使用详解.pdf
下面截图:
二、java memcached 客启端的调用
2.1 下载客户端jar 包 java_memcached-release_X.x.jar
https://github.com/gwhalin/Memcached-Java-Client 可下载最新
三、简单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
- memcached-全面剖析.pdf (929.5 KB)
- 下载次数: 511
- Memcached-原理和使用详解.pdf (610.8 KB)
- 下载次数: 461
- memcached-1.2.1-win32.zip (89 KB)
- 下载次数: 181
- java_memcached-release_2.6.2.zip (229.5 KB)
- 下载次数: 230
评论
应该是
new Date(10000))// 过期时间为10秒
发表评论
-
Java 数据验证
2017-05-12 10:27 1095在web开发当前就会遇到一些数据有效性验证的相关代码编 ... -
pinyin4j汉字转化为拼音
2014-01-15 09:30 668pom 添加 <!-- pinyin4j ... -
java emoji处理工程例子
2012-11-08 17:22 2347java emoji处理工程例子 -
java Socket Demo
2012-08-24 09:51 921java socket test -
java gc的工作原理、如何优化GC的性能、如何和GC进行有效的交互
2012-05-23 11:39 5813一个优秀的Java 程 ... -
使用spring aop对web 应用数据进行memcached缓存
2011-09-20 18:05 2371继续 上一章节[Memcached 入门-介绍-使用-优化 ... -
Memcached 高性能的分布式内存对象缓存系统 Memcached的安装、使用实例
2011-09-16 10:54 2036Memcached 是一个高性能的分布 ... -
HtmlCleaner Html文档解析器
2011-09-05 14:44 1069HtmlCleaner 是一个开源的Java ... -
java加解文件zip
2011-07-22 12:20 1116在网上找了一下,没有找到java解压rar文件,只找到了,zi ... -
设计模式
2011-07-05 12:27 810设计模式------------------------ ... -
数据分页1 2 3 4 5 6 7 8 9 10
2011-06-30 15:31 19881 2 3 4 5 6 7 8 9 10 分页数据 ... -
Java模式开发之责任链模式
2011-06-27 15:28 914从击鼓传花谈起 击鼓传花是一 ... -
java 泛型介绍与使用
2011-05-20 14:26 958泛型是Java SE 1.5的新特性, 泛型的本质是参数化类 ... -
java Annotation(注解)
2011-05-19 17:16 9411、申明一个注解类、用到关键字interface 前面加个@ ... -
AOP
2011-05-10 10:22 851分散关注 将通用需求功能从不相关类之中分离出来;同时,能够 ... -
Dom4J UTF-8 编码问题解决方案......
2010-09-14 12:02 1611这几天用到了xml技术但是发现了个问题就是无法以UTF-8保存 ... -
我们天天的写程序。如果老板有一天,不让你写了,叫你去搞用户需求时,你会发现自有哪些不足?
2010-07-15 23:03 949你第一次写需求的时候是不是无从下手呢? 人生有很多第一次,第 ... -
命令999
2010-07-10 17:21 962Windows系统:开始--运行--命令大全Nslookup- ... -
使用spring定时任务时间格式cronExpression设置
2010-06-20 18:23 2015org.springframework.scheduling. ... -
以对象思考问题
2009-07-21 13:52 10401简单的说。面向对象的思维就是以对象为中心来思考问题 ,然则什 ...
相关推荐
这些配置对于优化 `memcached` 性能和适应不同应用场景至关重要。 **4. 文档资源** `AUTHORS` 和 `CONTRIBUTORS` 文件记录了项目开发者和贡献者的信息,`COPYING` 和 `LICENSE` 文件则提供了软件的版权和许可信息。...
【Memcached 入门文档】 Memcached 是一个广泛使用的开源软件,它被设计为一个高性能的分布式内存对象缓存系统,特别适用于动态Web应用程序。它的主要目标是减轻数据库的负载,通过将数据和对象存储在内存中,以...
在实际应用中,mixi作为日本的一个社交网络平台,大规模使用memcached来优化其Web应用的性能。他们通过自己开发的工具和技术,包括Tokyo Cabinet和Tokyo Tyrant,来进一步提高缓存系统的效率和可靠性。 学习...
**Memcached分布式缓存入门** Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问速度。这个“Memcached分布式缓存入门”资料将引导初学者深入理解...
### Memcached 安装与配置详解 #### 一、Memcached 概述 Memcached 是一款高性能的分布式内存缓存服务器,由 ...通过本文介绍的基础知识和安装步骤,初学者可以快速上手并利用 Memcached 来优化自己的 Web 应用性能。
对于Java应用,你可以使用如`java_memcached-release.jar`这样的客户端库来连接和操作Memcached。以下是一个简单的Java示例: ```java import com.danga.MemCached.MemCachedClient; import ...
这里以 Python 为例,介绍如何安装和使用 Python 的 `pylibmc` 客户端: 1. 安装 Python `pylibmc` 库: ``` pip install pylibmc ``` ### 三、缓存数据 使用 Memcached 存储数据非常简单,以下是一个简单的 ...
通过阅读《Hibernate入门 - 第二版》,初学者可以快速掌握Hibernate的基本使用,而有一定经验的开发者则能进一步提升自己的ORM技能,更好地在实际项目中运用Hibernate。提供的PDF文件“Apress.Beginning.Hibernate....
### Memcached入门详解 #### 一、Memcached简介与应用场景 **Memcached**是一种高性能、分布式内存对象缓存系统,用于通过减少数据库负载来加速动态Web应用的速度。它通过在内存中缓存数据来减少对数据库服务器的...
- `README` 文件提供了快速入门指南和基本的使用说明。 - `doc` 目录可能包含更详细的文档,帮助开发者更好地理解和使用memcached。 **6. 性能优化** - 通过调整缓存策略,如过期时间(`expiration time`),可以...
Memcached 使用入门** **2.1 Memcached 服务的安装** 在安装 Memcached 之前,确保你的 Linux 内核版本在 2.6 或以上,因为 Memcached 使用了 libevent 和 epoll。首先从官方网站下载 libevent 库和 Memcached 源...
阿里云的云数据库Memcache版是一款基于分布式内存计算技术的高性能缓存服务,它提供了对Memcached协议的全面支持,让任何兼容Memcached协议的客户端都能无缝接入。该服务旨在提高应用程序的性能,减少对数据库的压力...
【PHP与Memcached入门】 PHP作为一款广泛应用的服务器端脚本语言,广泛用于Web开发,以构建动态交互式网站。为了提升网站性能,通常会引入缓存技术,而Memcached正是一个高效的分布式内存对象缓存系统,适用于加速...
**PHP下的Memcached入门实例解析** Memcached是一种高性能的分布式内存对象缓存系统,它可以用于存储数据,以减少对数据库的直接访问,从而提高应用程序的响应速度。在PHP环境中,Memcached是常用的缓存解决方案之...
Tomcat+MemcachedRedis集群,有视频实战以及源码。包含Tomcat性能优化,Redis基础入门以及使用场景,性能优化
Memcached的快速入门主要涉及服务启动和客户端使用。通过Perl客户端,可以轻松实现数据的存取操作,例如,`set key 0 60 3`用于设置键为key,值为3字节的字符串,过期时间为60秒;`get key`则用于获取key对应的值。...
**memcached** 是一个高性能、分布式内存对象缓存...提供的"memcached.pdf"文档很可能是对这些知识点的详细介绍,包括概念、配置、使用示例以及可能的优化技巧。阅读这份文档将有助于深入理解和掌握memcached的使用。
例如,使用索引、避免全表扫描、减少子查询和临时表的使用,以及避免在WHERE子句中使用函数等,都是优化SQL的常见策略。 除此之外,数据库的设计和架构也对优化有直接影响。合理的数据分区、分表、读写分离以及选择...
- **缓存技术**:使用如Memcached、Redis等缓存中间件减轻数据库压力。 - **负载均衡**:通过负载均衡器分散访问请求,提高网站并发处理能力。 ##### 4.2 扩展性考虑 - **模块化设计**:采用模块化的设计思想,便于...