tair是乙個高效能、分布式、可擴充套件、高可靠的key-value nosql結構儲存系統,專注於快取記憶體場景
1、configid
唯一標識乙個tair集群,每個集群都有乙個對應的configid,在當前的大部分應用情況下configid是存放在diamond中的,對應了該集群的configserver位址和groupname。業務在初始化tairclient的時候需要配置此configid
2、namespace(area)
是tair中分配給應用的乙個記憶體或者持久化儲存區域,可以認為應用的資料存在自己的namespace中。支援不同的資料使用相同的key而內容不衝突。
3、quota配額
對應了每個namespace儲存區的大小限制,超過配額後資料將面臨最近最少使用(lru)的淘汰
4、配額計算
配額大小直接影響資料的命中率和資源利用效率,業務方需要給出乙個合適的值,通常計算方法是評估在保證一定命中率情況下所需要的記錄條數,這樣配額大小即為:記錄條數*平均單條記錄大小
5、expiretime過期時間
expiredtime 是指資料的過期時間,當超過過期時間之後,資料將對應用不可見,這個設定同樣影響到應用的命中率和資源利用率。不同的儲存引擎有不同的策略清理掉過期的資料。呼叫介面時,expiredtime單位是秒。可以是相對時間(比如:30s),也可以是絕對時間(時間戳,比如:當天23時,轉換成距離1970-1-1 00:00:00的秒數)。
(1) 小於0,不更改之前的過期時間;
(2) 如果不傳或者傳入0,則表示資料永不過期;
(3) 大於0小於當前時間戳是相對時間過期;
(4) 大於當前時間戳是絕對時間過期;
6、version
tair中儲存的每個資料都有版本號,版本號在每次更新後都會遞增,相應的,在tair put介面中也有此version引數,這個引數是為了解決併發更新同乙個資料而設定的,類似於樂觀鎖。 很多情況下,更新資料是先get,修改get回來的資料,然後put回系統。如果有多個客戶端get到同乙份資料,都對其修改並儲存,那麼先儲存的修改就會被後到達的修改覆蓋,從而導致資料一致性問題,在大部分情況下應用能夠接受,但在少量特殊情況下,這個是我們不希望發生的
mysql的基本原理 Mysql 基本原理
mysql 基本原理 mysql是一種關聯式資料庫管理系統,關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加了速度並提高了靈活性 ysql是資料庫登入命令 uroot預設超級使用者登入 p 預設沒密碼 中寫密碼 mysqladmin uroot password 12...
8 2 1 基本原理
乙個舞台動畫物件在包含許多舞台資訊 出現在何處,佔多大面積,處在什麼角度,是否可見 這些資訊分別儲存在動畫物件的屬性中。在 中讀取這些屬性可以了解物件的位置 大小 角度等狀態資訊 修改這些屬性可以改變物件的位置 大小 角度等狀態。如果從資料的角度去理解,動畫就是在固定時間間隔點不斷修改動畫物件某項屬...
Csocket基本原理
我通過幾個採用 csocket 類編寫並基於 client server 客戶端 服務端 的網路聊天和傳輸檔案的程式 在除錯這些程式的過程中,追蹤深入至 csocket 類核心原始碼 sockcore.cpp 對於csocket 類的執行機制可謂是一覽無遺,並且對於阻塞和非阻塞方式下的 socket...