日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Memcached 入門

 Tom.Lin 2012-07-10

Java_memcached-release

一、了解和使用使用安裝memcached

在這一塊已經(jīng)有車了,就不再造了。

一個(gè)日本君寫的: 長(zhǎng)野雅廣 memcached- 全面剖析.pdf

heiyeluren( 黑夜路人)   Memcached- 原理和使用詳解.pdf

下面截圖:

 


 

 


 



 


 

 

二、java memcached 客啟端的調(diào)用

    2.1 下載客戶端jarjava_memcached-release_X.x.jar

       https://github.com/gwhalin/Memcached-Java-Client 可下載最新

三、簡(jiǎn)單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));// 過(guò)期時(shí)間為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 成功后就講 下面兩個(gè)類的一些設(shè)置參數(shù):SockIOPool 、MemCachedClient

四、SockIOPool socket 連接池類

   

setServers(String[] servers) :設(shè)置服務(wù)器信息數(shù)組;

setWeights(String[] weights) :設(shè)置服務(wù)器權(quán)重?cái)?shù)組;

setInitConn(int count) :設(shè)置初始連接數(shù);

setMinConn(int minConn) :設(shè)置最小連接數(shù);

setMaxConn(int maxConn) :設(shè)置最大連接數(shù);

setMaxIdle(long arg0) :設(shè)置最大處理時(shí)間;

setMaintSleep(long arg0) :主線程的睡眠時(shí)間;

initialize() :初始化連接池。

 

五、MemCachedClient 類及其常用方法

   

add(String key, Object value) :添加一個(gè)鍵值對(duì)到緩存中;

add(String key, Object value,Date expires) :添加一個(gè)鍵值對(duì)到緩存中,并設(shè)置其超時(shí)時(shí)間;

set(String key, Object value) :在緩存中設(shè)置一個(gè)鍵的值;

set(String key, Object value, Date expires) :在緩存中設(shè)置一個(gè)鍵的值,并設(shè)置其超時(shí)時(shí)間;

get(String key) :獲得某個(gè)鍵的值。

incr(String key) :為某個(gè)鍵上的值執(zhí)行+1 操作;

decr(String key) :為某個(gè)鍵上的值執(zhí)行-1 操作;

replace(String key, String value) :將某個(gè)鍵的值替換成新的值;

replace(String key, String value, Date expires) :將某個(gè)鍵的值替換成新的值,并設(shè)置其超時(shí)時(shí)間。

 

六、Memcached 優(yōu)化

    可以參考: hyj_dx   http://hyj-dx./blog/305161

 

 

 

1、客戶端在與 memcached 服務(wù)建立連接之后,進(jìn)行存取對(duì)象的操作,每個(gè)被存取的對(duì)象都有一個(gè)唯一的標(biāo)識(shí)符 key,存取操作均通過(guò)這個(gè) key 進(jìn)行,保存到 memcached 中的對(duì)象實(shí)際上是放置內(nèi)存中的,并不是保存在 cache 文件中的,這也是為什么 memcached 能夠如此高效快速的原因。注意,這些對(duì)象并不是持久的,服務(wù)停止之后,里邊的數(shù)據(jù)就會(huì)丟失。

2、當(dāng)存入cached的數(shù)據(jù)超過(guò)了cached的容量后會(huì)將最長(zhǎng)時(shí)間沒(méi)調(diào)用的對(duì)象擠出,這正好應(yīng)征了cached的特征。

3、利用memcached常用的做法:在每取得一次cached對(duì)象后,重新設(shè)置這個(gè)對(duì)象的cache時(shí)間,這樣能夠使得經(jīng)常被調(diào)用的對(duì)象可以長(zhǎng)期滯留在緩存中,使得效率增倍。

 

memcached 技術(shù)配置參數(shù)研究

failover表示對(duì)于服務(wù)器出現(xiàn)問(wèn)題時(shí)的自動(dòng)修復(fù)。
initConn初始的時(shí)候連接數(shù),
minConn表示最小閑置連接數(shù),
maxConn最大連接數(shù),
maintSleep表示是否需要延時(shí)結(jié)束
nagle是TCP對(duì)于socket創(chuàng)建的算法,
socketTO是socket連接超時(shí)時(shí)間,
aliveCheck表示心跳檢查,確定服務(wù)器的狀態(tài)。
Servers是memcached服務(wù)端開(kāi)的地址和ip列表字符串,
weights是上面服務(wù)器的權(quán)重,必須數(shù)量一致,否則權(quán)重?zé)o效
可從以下幾方面考慮優(yōu)化
1. 重新設(shè)置配置參數(shù)。
2. 盡量使用小容量的數(shù)據(jù)內(nèi)容.
3. 增加memcached提高服務(wù)獲取的內(nèi)存總量、提高命中率。
4. 可以采用多個(gè)memcache服務(wù)進(jìn)行偵聽(tīng),分開(kāi)處理,針對(duì)服務(wù)提供的頻繁度劃分服務(wù)內(nèi)存
5. 根據(jù)服務(wù)器的性能不同設(shè)置權(quán)重 weights
6. 對(duì)需要使用memcache服務(wù)的機(jī)器ip,服務(wù)端做訪問(wèn)限制。
避免memcached里的數(shù)據(jù)不會(huì)被別有心意的人再利用,或責(zé)保證服務(wù)器的內(nèi)存不被漫天遍地的垃圾數(shù)據(jù)所堆積,造成命中極低
7. 優(yōu)化memcached客戶端的代碼。

 

、、、、、、、、、、

 


七、小技巧

  h 顯示幫助

-p 監(jiān)聽(tīng)的端口

-l 連接的IP地址, 默認(rèn)是本機(jī)

-d start 啟動(dòng)memcached服務(wù)

-d restart 重起memcached服務(wù)

-d stop|shutdown 關(guān)閉正在運(yùn)行的memcached服務(wù)

-d install 安裝memcached服務(wù)

-d uninstall 卸載memcached服務(wù)

-u 以的身份運(yùn)行 (僅在以root運(yùn)行的時(shí)候有效)

-m 最大內(nèi)存使用,單位MB。默認(rèn)為64MB

-M 內(nèi)存耗盡時(shí)返回錯(cuò)誤,而不是刪除項(xiàng)

-c 最大同時(shí)連接數(shù),默認(rèn)為1024

-f 塊大小增長(zhǎng)因子,默認(rèn)為1.25

-n 最小分配空間,key+value+flags默認(rèn)為48

 

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多