評論存儲
A. 對網路商品的評價語進行存儲,如人們對淘寶網的商品評價評語的存儲,用到什麼技術,用什麼語言和軟體
額,分類分錯了,這個應該屬於網路技術的類型,一般應該是用VB編的。你說的如果是個人把自己的淘寶評價存儲下來的話,完全可以用很多截圖軟體存下來的,個人用來說完全夠了
在java應用中,對於訪問頻率比較高,又不怎麼變化的數據,常用的解決方案是把這些數據加入緩存。相比DB,緩存的讀取效率快好不少。java應用緩存一般分兩種,一是進程內緩存,就是使用java應用虛擬機內存的緩存;另一個是進程外緩存,現在我們常用的各種分布式緩存。相比較而言,進程內緩存比進程外緩存快很多,而且編碼也簡單;但是,進程內緩存的存儲量有限,使用的是java應用虛擬機的內存,而且每個應用都要存儲一份,有一定的資源浪費。進程外緩存相比進程內緩存,會慢些,但是,存儲空間可以橫向擴展,不受限制。
這里是幾中場景的訪問時間
-------------------------------------------------------------------
| 從資料庫中讀取一條數據(有索引) | 十幾毫秒 |
| 從遠程分布式緩存讀取一條數據 | 0.5毫秒 |
| 從內存中讀取1MB數據 | 十幾微妙 |
-------------------------------------------------------------------
進程內緩存和進程外緩存,各有優缺點,針對不同場景,可以分別採用不同的緩存方案。對於數據量不大的,我們可以採用進程內緩存。或者只要內存足夠富裕,都可以採用,但是不要盲目以為自己富裕,不然可能會導致系統內存不夠。
下面要分享的是一個代碼級別的,對進程內緩存的經驗總結。面向jdk1.8版本。
在有效時間內緩存單個對象
@FunctionalInterfacepublic interface LiveFetch<T> { // 刷新緩存介面 T fetch() ;
}
public class LiveManager<T> { // 緩存時間
private int cacheMillis; // 緩存對象
private LiveCache<T> liveCache; // 刷新緩存的對象
private LiveFetch<T> liveFetch ;
private Logger logger = LoggerFactory.getLogger(LiveManager.class) ;
// 刷新緩存開關
private boolean refresh = false ;
public LiveManager(int cacheMillis, LiveFetch<T> liveFetch) { this.cacheMillis = cacheMillis ; this.liveFetch = liveFetch ;
}
/**
* fetch cache ; if cache expired , synchronous fetch
* @return
*/
public T getCache() {
initLiveCache();
if(liveCache != null) {
T t ; if((t= liveCache.getElement()) != null) { return t ;
} else {
t = liveFetch.fetch() ; if(t != null) {
liveCache = new LiveCache<T>(cacheMillis, t) ; return t ;
}
}
}
return null ;
}
/**
* fetch cache ; if cache expired , return old cache and asynchronous fetch
* @return
*/
public T getCacheIfNecessary() {
initLiveCache();
if(liveCache != null) {
T t ; if((t= liveCache.getElement()) != null) { return t ;
} else {
refreshCache() ; return liveCache.getElementIfNecessary() ;
}
}
return null ;
}
/**
* init liveCache */
private void initLiveCache() { if(liveCache == null) {
T t = liveFetch.fetch() ; if(t != null) {
liveCache = new LiveCache<T>(cacheMillis, t) ;
}
}
}
/**
* asynchronous refresh cache */
private void refreshCache() {
if(refresh) return ;
refresh = true ; try {
Thread thread = new Thread(() -> { try {
T t = liveFetch.fetch(); if (t != null) {
liveCache = new LiveCache<>(cacheMillis, t);
}
} catch (Exception e){
logger.error("LiveManager.refreshCache thread error.", e);
} finally {
refresh = false ;
}
}) ;
thread.start();
} catch (Exception e) {
logger.error("LiveManager.refreshCache error.", e);
}
}
}
public class Test {
public static void main(String[] args) { int cacheMilis = 1000 ;
LiveManager<Object> liveManager = new LiveManager<>(cacheMilis,() -> new Test().t1()) ;
liveManager.getCache() ;
liveManager.getCacheIfNecessary() ;
}
public Object t1(){
return new Object() ;
}
}
C. 如何評價華為存儲的顏值
用顏值來評價華為存儲,是一個很新鮮的提法。
不可否認,這是個拼顏值的時代!
企業也不例外,顏值就是生產力,比如蘋果產品就憑顏值爆「表」深受熱捧。
小編問了下度娘:顏值,源自日語「臉」的漢字,顏值表示人物顏容英俊或靚麗的數值,用來評價人物容貌。
如何用科學方法來測算華為存儲這種抽象的看不見摸不著的顏值,小編私以為可以先看看華為存儲的成績單。
因為有記者這么評價華為存儲2014的成績,漂~亮~!這就是企業的顏值!
漂亮到什麼程度?有三件大事可以證明:
第一件:華為存儲2014年成功躋身Gartner魔力象限挑戰者象限(提Gartner,小夥伴們都懂得)
第二件:根據IDC 2014Q3數據,2014年華為存儲收入增速、發貨套數增速和發貨容量增速都位居中國第一。通俗點說:華為存儲從增長速度來看,無論是國內市場還是國外市場,華為存儲位列第一無可爭議。
第三件:2014年,華為存儲奪走競爭對手31.7%市場份額。(好膩害!)
談到這里,小編忍不住要來段人人都愛的大~爆~料~!
CeBIT2015馬上要開展了(3月16-20日在德國漢諾威),很多小夥伴從微信後台發來信息問,華為IT即將在CeBIT上投放什麼秘密武器!答案就是:
愛看電視愛追劇的都懂的~現在巴不得所有的視頻都是4K的,最好逼真到看《深夜食堂》就跟自己在那兒坐著吃美食似的,看《超能陸戰隊》就跟自己擁有了暖男胖大白,看《奔跑吧兄弟》就跟自己在那裡參戰。
所以,4K技術絕對是讓顏值爆表的利器!
但想要獲得4K超高清體驗,卻很難,因為片源少?沒片方願意拍4K的?
NO~NO~NO~,其實最根本的原因是:存儲系統跟不上!
4K技術對於帶寬和容量的極高要求,不是什麼存儲系統都能撐得住!
那麼,問題來了,到底什麼存儲系統能夠滿足4K要求?
必然是媒資界明星:
華為OceanStor 9000!
對媒資行業而言,顏值尤為重要,他們的終極目標就是要讓節目「好看」!
所以,4K超高清視頻製作的需求尤為迫切,誰能幫助他們?
就是TA,具備業界第一的288節點,60PB容量擴展能力。更是具有400GB的帶寬能力,可隨業務增長在線擴展,構建彈性媒體在線資源池,支持向4K業務的平滑演進,同時藉助高密節能的系統設計,使空間節省200%,功耗降低32%,進一步降低媒體庫運營成本。以首創的全融合架構,OceanStor 9000實現一套存儲系統支持媒體全流程業務,可在單一數據資源池實現采、編、播、管、存全流程共享,使數據智能流動,消除傳統媒體架構的存儲孤島,提升全流程業務效率。
D. 評價存儲設備需要衡量哪些重要指標
對於硬碟來說
容量就不說了;
每分鍾轉速,轉速越快,相關性能越好,但同時發熱量越大;
平均尋道時間,是指硬碟接到讀/寫指令後到磁頭移到指定的磁軌上方所需要的平均時間。;
平均潛伏期,是指當磁頭移動到指定磁軌後,要等多長時間指定的讀/寫扇區會移動到磁頭下方,轉速越快,潛伏期越短。
平均訪問時間,近似等於平均尋道時間+平均潛伏期
數據傳輸率DTR:單位為MB/s,又稱MBPS或Mbits/s(兆位每秒,又稱Mbps)。DTR分為最大與持續兩個指標,根據數據交接方的不同又分外部與內部數據傳輸率。內部DTR是指磁頭與緩沖區之間的數據傳輸率,外部DTR是指緩沖區與主機(即內存)之間的數據傳輸率。外部DTR上限取決於硬碟的介面,目前流行的Ultra ATA-100介面即代表外部DTR最高理論值可達100MB/s,持續DTR則要看內部持續DTR的水平。內部DTR則是硬碟的真正數據傳輸能力,為充分發揮內部DTR,外部DTR理論值都會比內部DTR高,但內部DTR決定了外部DTR的實際表現。由於磁碟中最外圈的磁軌最長,可以讓磁頭在單位時間內比內圈的磁軌劃過更多的扇區,所以磁頭在最外圈時內部DTR最大,在最內圈時內部DTR最小。
緩沖區容量,也稱之為緩存.緩沖區的基本要作用是平衡內部與外部的DTR。這主要體現在三個方面:
預取,預取功能簡單地說就是硬碟「私自」擴大讀取范圍,在緩沖區向主機發送指定扇區數據(即磁頭已經讀完指定扇區)之後,磁頭接著讀取相鄰的若干個扇區數據並送入緩沖區,如果後面的讀操作正好指向已預取的相鄰扇區,即從緩沖區中讀取而不用磁頭再定址,提高了訪問速度。
寫緩存,通常情況下在寫入操作時,也是先將數據寫入緩沖區再發送到磁頭,等磁頭寫入完畢後再報告主機寫入完畢,主機才開始處理下一任務。現在的廠商基本都應用了分段式緩存技術,將緩沖區劃分成多個小塊,存儲不同的寫入數據,而不必為小數據浪費整個緩沖區空間,同時還可以等所有段寫滿後統一寫入,性能更好。
讀緩存,將讀取過的數據暫時保存在緩沖區中,如果主機再次需要時可直接從緩沖區提供,加快速度。讀緩存同樣也可以利用分段技術。
E. mysql 存儲用戶日誌,評論等,如何實現
日誌表,用clob類型,mysql中好像是text
評論表,保存已個日誌表的外鍵,評論內容如果也很多的話也可以使用clob類型
日誌表與評論表就是一個1-N的關系
F. 日誌文章的評論用什麼方式存儲才好
資料庫。
XML 只適合小數據量的數據, 通常用於 配置文件, 數據轉移 等方面
G. 比如微博上的文章和評論也都是保存在資料庫上嗎那麼多東西怎麼保存呢
資料庫中創建不同的表,文章表、評論表,表間通過主外鍵關聯
表中有不同的欄位,欄位存儲對應的數據
比如文章表中
ID文章編號
Title文章標題
Content文章內容
CreateTime創建時間
.....
等等 多個欄位存儲
評論表跟文章表通過主外鍵關聯 (比如文章ID,在評論表中也有文章ID,標識這些評論是屬於某一個文章的)
H. 文章的點贊評論轉發數據應該如何保存
1、最優方案是在文章表中保存一個總數(點贊、評論、轉發),避免多表關聯查詢。
2、如果只是查詢單個文章,且要查詢具體的評論內容,則只能到具體的評論表去查詢。