問題1:檔案放在硬碟中,如果檔案越大,相應的查詢時間也就會越久。
主要的原因是因為io全量掃瞄造成的時間更長(grep awk)
但是在資料庫中的查詢時間更短,主要是因為在資料庫中進行了資料分治,將儲存空間設定成多個datapage,並且在資料庫中可以構建索引,然後做成b+樹,將樹幹存放於記憶體中。
馬士兵老師總結了乙個道理,計算機在進步的過程中,就是在對抗全量io的過程。
問題2:如果資料庫中表很大,有很多行,增刪改查會變慢?對不對?
那麼我們將這個問題拆開看的話,就是說將增刪改查,看成讀和寫;寫一定會變慢,因為寫會涉及到索引的調整;那麼讀就不一定會變慢
如果只有乙個客戶端在進行乙個簡單的查詢,那麼如果索引名中,其實也就兩個4k的datapage的查詢,所以查詢結果也就是毫秒級的
如果併發很大,每個人都命中索引,且讀取的資料不一樣,那麼硬碟的吞吐量就會影響到查詢效果。
所以這裡就引出了redis memcache等技術
在所有的資料中,只有一部分的熱資料會頻繁使用,放在記憶體中,不頻繁訪問的放在硬碟中。
在資料庫中,分為關係型資料庫和非關係型資料庫;
mysql hana等支援sql的複雜查詢,而redis的技術nosql,常見的key-value;在關係型資料庫中,常用詞:約束,正規化,冗餘等!
那非關係型資料庫,做成nosql的,主要防止有約束存在,一張表在記憶體,一張表在硬碟中的情況產生。
在memcache中,只有乙個string型別,如果想取回下表為2的元素,就需要將string的字串取回,然後自行進行反序列化處理,然後取出第二個元素;
在redis有很多資料型別,有sring,list,set,hash,zset資料結構,每種資料結構都有自己的本地方法。那麼如果要取回存放資料中的下表為2的元素,就可以直接使用redis的list型別的資料結構,用本地方法取回元素,並返回。
所以綜上所訴,memcache是資料項計算移動,而redis是計算向資料移動。
在redis中,工作執行緒是單執行緒的,對資料進行序列化處理。
redis安裝
然後tar -zxvf ...tar包,
首先閱讀readme檔案,裡面講了怎麼安裝
error:報錯:cc : commond not found : c語言的編譯器找不到,那麼 :
yum install gcc -y
繼續執行make命令,又會繼續報錯,根據readme,應該執行
make distclean(清除快取)
在原始碼檔案中如果有makefile那麼執行make方法。
如果有ocnfigure方法,那麼執行./configure命令
最後非同步就是執行拷貝過程,
make prefix=(路徑) install .
接下來就是配置環境變數
vi /etc/profile
//加上
export redis_home=/opt/bigdata/redis5
//然後再path加上redis_home 用「 :」隔開
:$redis_home/bin
source /etc/profile
//設定開機自啟
cd utils
./install_server.sh
//預設埠號是:6379
後台服務的指令碼:/etc/init.d
本篇文章是在學習馬士兵老師redis預習課程的時候,記錄的筆記。。。 20190319預習筆記 課堂筆記
chattr change attributes 改變檔案附加屬性 chattr i 1.txt 將1.txt檔案改為唯讀模式 lsattr 檢視附加許可權 chattr可同時作用於檔案和目錄 lsattr a 檢視全部檔案,包括隱藏檔案 d 檢視目錄本身 r 檢視目錄下所有檔案屬性 檢視passw...
編譯技術預習筆記
不確定自己的認真能堅持多久,那麼就為了消除不確定性而多走幾步吧 以完成作業為目標,能夠對照答案,似乎回到了高中開學時最忙碌的時光 控制代碼 2.29 關於什麼是控制代碼,參照如下 採用最左規約,控制代碼是句型的第乙個規約 編譯原理中 短語,直接短語,控制代碼 自底向上語法分析 2.29 3.1 最有...
redis 學習筆記
本文寫作源於最近產品中部分功能用到了redis redis在功能上是乙個與memecache類似的軟體,但它比memecache提供了更強大的功能。redis本質上是乙個key value型別的記憶體資料庫。其value可以是string,list,set,sorted set,hash。很多地方都...