資料庫 快取學習

2021-06-25 20:50:03 字數 2274 閱讀 8383

提供對熱點資料的高速訪問。

快取重點:

阿里雲快取特點:

1.       阿里雲ocs僅支援阿里雲內網訪問,不支援公網訪問

2.      阿里雲ocs需要與ecs(阿里雲伺服器)配合使用,而且只能與本地區節點的ecs連通

3.      阿里雲ocs是按購買量收費的,而不是按使用量收費

4.      阿里雲ocs對於存貯的物件大小是有限制的。快取通常對其內部儲存的資料尺寸是有限制的,阿里雲ocs也一樣。目前ocs支援儲存的資料物件的上限是1,000,000byte。如果要存的值超過這個限制,我們應該考慮把資料壓縮,或從邏輯上分成不同鍵儲存的幾個值。

示例1:因為阿里雲ocs只能通過內網訪問,所以需要在阿里的ecs(伺服器)上執行訪問

final string host = "b2fd2f89f49f11e3.m.cnqdalicm9pub001.ocs.aliyuncs.com";//控制台上的「內網位址」

final string port ="11211"; //預設埠 11211,不用改

final string username = "b2fd2f89f49f11e3";//控制台上的「訪問賬號」

final string password = "my_password";//郵件或簡訊中提供的「密碼」

memcachedclient cache = null;

try , new plaincallbackhandler(username, password));

cache = new memcachedclient(

new connectionfactorybuilder().setprotocol(protocol.binary)

.setauthdescriptor(ad)

.build(),

addrutil.getaddresses(host + ":" + port));

system.out.println("ocs sample code");

//向ocs中存乙個key為"ocs"的資料,便於後面驗證讀取資料,1000

為資料過期時間

operationfuture future = cache.set("ocs", 1000," open cache service,  from www.aliyun.com");

//向ocs中存若干個資料,隨後可以在ocs控制台監控上看到統計資訊

for(int i=0;i<100;i++) catch (ioexception e) catch (interruptedexception e) catch (executionexception e) else  

}// end of for 

memcached 是乙個高效能的分布式記憶體 物件快取系統,用於動態web應用以減輕資料庫負載。它通過在記憶體中快取資料和物件來減少讀取資料庫的次數,從而提供動態、資料庫驅動**的速度。

memcached基於一 個儲存鍵/值對的hashmap。其守護程序是用c寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護程序通訊。

memcached,對於快取物件大小有要求,單個物件不得大於1mb,且不支援複雜的資料型別,譬如set等

特性:memcached

1.協議簡單:不使用複雜xml,而使用文字格式

2.基於libevent事件處理機制

3.內建記憶體儲存方法(重啟會丟失資料)

4.memcached

相互不通訊的分布式: memcached 伺服器之間不會進行通訊,資料都是通過客戶端的分布式演算法儲存到各個伺服器中

**基本和阿里雲ocs一致 set和get是基本物件操作的方法。

注意「:add和set區別

set和add方法的不同之處是add方法不允許key值相同,如果第二次add的key相同,則儲存失敗,而set方法允許key相同,如果相同,則替換該key對應的value。

jedis是redis的官方客戶端工具。

示例:jedis jedis = new jedis("10.11.20.140");

string keys = "name";

// 刪資料

jedis.del(keys);

// 存資料

jedis.set(keys, "snowolf");

// 取資料

string value = jedis.get(keys);

system.out.println(value);

完成程式示例**見附件

資料庫快取

用資料庫 將要儲存的nsarray 或 nsdictionary 物件 轉為nsdata型別。再將nsdata存到資料庫的blob中。若將nsarray直接存到資料庫 那麼資料庫中儲存的是 nsstring型別的資料而不是nsarray物件本身,因此要轉為nsdata型別。方法如下 將oc物件轉為n...

快取資料庫

資料庫快取,當沒有網路時,拿取資料庫 內容,當重新整理資料時,清空資料庫內容,從新新增 建立資料庫類方法 package com.example.administrator.xie.dao import android.content.context import android.database....

資料庫快取

資料庫從伺服器上讀取資料時,可以從硬碟的資料檔案中獲取資料,也可以從資料庫快取中讀取資料。現在資料庫管理員需要搞清楚的是,在什麼樣的情況下,系統是從快取中讀取資料,而不是從硬碟的資料檔案中讀取資料?簡單的說,資料快取就是記憶體中的一塊儲存區域,其儲存了使用者的sql文字以及相關的查詢結果。通常情況下...