歡迎來到 常識詞典網(wǎng) , 一個專業(yè)的常識知識學(xué)習(xí)網(wǎng)站!
[ Ctrl + D 鍵 ]收藏本站
答案 1:
這種情況是有可能出現(xiàn)的,頻繁的釋放內(nèi)存,對于數(shù)據(jù)庫產(chǎn)品的設(shè)計不利,你只需要確保這些內(nèi)存仍然可用.這是更高效的辦法.符合生產(chǎn)的使用,也是目前redis采用的.答案 2:
這不是Redis本身的問題,Redis本身確實已經(jīng)調(diào)用free釋放這些內(nèi)存。這應(yīng)該是使用的底層C運行時的問題。就glibc來說,在分配大于128k的內(nèi)存時使用m-p,而使用brk/-rk在-eap中分配小內(nèi)存。通過m-p申請的內(nèi)存在調(diào)用free后能馬上返還給系統(tǒng),而-eap中的內(nèi)存就不一定,除非釋放的內(nèi)存是-eap中連續(xù)的大塊。Redis本身沒有內(nèi)存管理機制,只有一個使用量的統(tǒng)計功能 。每次需要創(chuàng)建對象,都是直接調(diào)用-lloc申請,而Redis中的對象基本都比較小,所以基本都是在-eap中的內(nèi)存。可以試試goog-perftools.sourceforge.net/doc/tc-ll... 這個內(nèi)存分配實現(xiàn)。答案 3:
是你自己使用方式有問題吧.如果是使用的del命令.是會釋放內(nèi)存的.db.c//....187 void delCom-nd(redisClient *c)//....191 if (dbDelete(c- > db,c- > argv[j])) {//....131 int dbDelete(redisDb *db, robj *key) {//...140 return dictDelete(db- > dict,key- > ptr) == DICT_OK;下一篇:迄今為止,你覺得最令你震驚的是什么事? 下一篇 【方向鍵 ( → )下一篇】
上一篇:上海中高級軟件工程師一般的薪資多少? 上一篇 【方向鍵 ( ← )上一篇】
快搜