`
stephen830
  • 浏览: 3011586 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java_memcached-release 安装 原理 实例

 
阅读更多

 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是以KEY-VALUE的方式进行数据存储的
KEY的大小限制:Key(max)<=250个字符;
VALUE在存储时有限制:Value(max)<= 1M;
memcached默认过期时间:ExpiresTime(max)= 30(days)。

--------------------------------

 

附件在我的资源中有

 

参考资料 http://blog.charlee.li/memcached-pdf/

 

 

分享到:
评论

相关推荐

    memcached-1.2.1-win32.zip 和 java_memcached-release_1.6.zip

    `memcached-1.2.1-win32.zip` 提供了Memcached服务端,而`java_memcached-release_1.6.zip` 提供了Java客户端,使得开发者能够轻松地在Java环境中集成和使用Memcached。学习和掌握这些资源,将有助于构建更加快速、...

    java_memcached-release_2.5.1.jar Memcache java jar 包

    `MemCachedManager.java`可能是库中的一个类,用于管理Memcached实例,帮助用户更方便地连接、操作和管理缓存。 这个库的核心功能包括: 1. **连接管理**:库提供了一种方式来建立和维护到Memcached服务器的连接。...

    java_memcached-release_2.6.3.rar 客户端所有包

    这个`java_memcached-release_2.6.3.rar`压缩包包含了用于Java客户端开发所需的全部依赖库,使得开发者能够轻松地在Java应用中集成Memcached功能。 1. **Memcached**:Memcached是一个高性能、分布式的内存对象缓存...

    java_memcached-release_2.6.6.jar及其依赖包

    在标题和描述中提到的`java_memcached-release_2.6.6.jar`是这个库的特定版本,它包含了实现Memcached协议并与之通信所需的所有Java类和方法。这个版本可能是对早期版本的更新,可能包括性能改进、新功能或错误修复...

    java_memcached-release_2.6.3.zip

    2. **java_memcached-release_2.6.3.jar**:这是Java Memcached客户端的核心库文件,包含了所有必要的类和方法,使得Java应用能够与Memcached服务器通信。这个库提供了API,让开发者可以方便地进行数据的存取、删除...

    java_memcached-release_1.6.zip

    标题“java_memcached-release_1.6.zip”表明这是一个Java Memcached的版本1.6的发布包,通常包含了该版本的所有源码、编译后的jar文件以及相关的文档。用户可以通过解压这个zip文件来获取所需的内容,以便在自己的...

    memcached-release_2.6.5 jar包

    4. **README** 文件:通常包含软件的安装、配置和使用说明,对于理解如何在项目中集成 `memcached-release_2.6.5` 包至关重要。 为了在Java项目中使用 Memcached,你需要按照以下步骤操作: 1. 添加依赖:将上述...

    memcached-release_2.6.6.jar

    2. **连接Memcached服务器**:使用Spymemcached库(通常包含在java_memcached-release_2.6.6.jar中),你可以创建一个Memcached客户端实例,连接到服务器。例如: ```java MemcachedClient client = new Memcached...

    memcached jar包

    在这个“memcached jar包”中,包含了两个Java版本的Memcached客户端库,即`java_memcached-2.0.jar`和`java_spymemcached-2.5.1.jar`(描述中的`java_memcached-release_2.5.1.jar`可能是`java_spymemcached-2.5.1....

    memcached-jar

    **java_memcached-release_2.6.6.jar** 是Java版本的memcached客户端库,它允许Java应用与memcached服务器进行通信。这个库提供了API,让开发者可以轻松地将数据存储和检索到memcached中。例如,它可以实现基本的set...

    memcached安装包以及java所需的memcached架包

    在提供的压缩包中,包含了`java_memcached-release_2.6.6.jar`,这是一个Java客户端库,允许Java应用程序与memcached服务器通信。 1. **添加依赖**:将`java_memcached-release_2.6.6.jar`添加到你的项目类路径中,...

    memcached-2.2.0RC1.tgz

    《深入理解Memcached 2.2.0RC1版本》 Memcached,作为一个高效、...通过理解和掌握memcached的工作原理、安装部署以及客户端的使用,开发人员可以充分利用这个强大的缓存系统,为自己的项目带来更高的效率和稳定性。

    memcached 的使用,以及jar包,和工具

    `java_memcached-release_2.0.1.jar`是Java语言访问memcached服务的客户端库,例如XMemcached或spymemcached。这个库提供了API,让Java开发者能够方便地将数据存入或从memcached中取出。使用此库,开发者可以设置、...

    memcached java client

    使用Java Memcached客户端的关键在于了解如何连接到Memcached服务器,创建客户端实例,存储和检索键值对。例如,你可以使用`XMemcachedClientBuilder`来创建客户端,然后调用`set`方法存储数据,`get`方法获取数据。...

    memcached-2.6.3

    `java_memcached-release_2.6.3.jar`是Java版本的Memcached客户端库,它提供了与Memcached服务器交互的接口和实现。这个版本的客户端库对性能进行了优化,支持多种操作,如设置、获取、删除和批量操作等,以满足不同...

    springboot+memcached+mybatis+shiro+webservice聚合工程架构

    此套架构整合了springboot+memcached+mybatis+shiro+webservice的聚合式...请把解压后的java_memcached-release_2.6.3.jar和commons-pool-1.5.6.jar 安装到本地maven库或者直接引入项目,在阿里镜像里拉不到这两个包。

    memcached linux部署包及jar.rar

    `java_memcached-release_2.0.1.jar`是Java客户端库,允许Java应用程序与Memcached交互。引入该库后,可以轻松地在Java应用中使用Memcached。 1. 将`java_memcached-release_2.0.1.jar`添加到项目的类路径中。 2. ...

    mamcached2.6.3所需jar

    总的来说,`java_memcached-release_2.6.3`是Java开发者与Memcached进行交互的重要工具,通过它,我们可以轻松地在Java应用中集成高效的缓存机制,提升整体系统的性能。这个库不仅提供了基本的缓存操作,还考虑到了...

    教材Java使用memcached教学.pdf

    首先,我们需要引入相关的依赖库,包括`commons-pool-1.5.6.jar`、`java_memcached-release_2.6.6.jar`、`slf4j-api-1.6.1.jar`和`slf4j-simple-1.6.1.jar`。这些库提供了连接池管理和日志记录等功能,使得与...

    memcached缓存

    这里我们以`java_memcached-release_2.6.6.jar`为例,这个库允许Java应用无缝地与memcached交互。 - **连接与操作**:通过创建MemcachedClient实例,设置服务器地址和端口,我们可以进行数据的存取操作。例如,使用`...

Global site tag (gtag.js) - Google Analytics