1.區(qū)別
Redis基于內(nèi)存,讀寫速度快执桌,也可做持久化鄙皇,但是內(nèi)存空間有限,當數(shù)據(jù)量超過內(nèi)存空間時仰挣,需擴充內(nèi)存育苟,但內(nèi)存價格貴。
MySQL基于磁盤椎木,讀寫速度沒有Redis快,但是不受空間容量限制博烂,性價比高
2.Redis緩存到MySQL
Redis其實就是說把表中經(jīng)常訪問的記錄放在了Redis中香椎,然后用戶查詢時先去查詢Redis再去查詢MySQL,確實實現(xiàn)了讀寫分離禽篱,也就是Redis只做讀操作畜伐。
由于緩存在內(nèi)存中,所以查詢會很快躺率。對于一個sql語句格式的數(shù)據(jù)請求玛界,首先計算該語句的MD5并據(jù)此得到結(jié)果集標識符,然后利用該標識符在Redis中查找該結(jié)果集悼吱。
注意慎框,結(jié)果集中的每一行都有一個相應的鍵,這些鍵都存儲在一個Redis集合結(jié)構(gòu)中后添。
如果Redis中不存在這樣一個集合笨枯,說明要找的結(jié)果集不在Redis中,所以需要執(zhí)行相應的sql語句遇西,在Mysql中查詢到相應的結(jié)果集馅精,然后按照上面所說的辦法把結(jié)果集中的每一行以字符串或哈希的形式存入Redis。
3.Redis同步MySQL數(shù)據(jù)
redis其讀取速度快粱檀,但是redis 怎么和數(shù)據(jù)庫同步呢洲敢,怎么能把數(shù)據(jù)庫的所有數(shù)據(jù)存到redis里面,能使用戶更快速的查找茄蚯。
4.常用命令
查詢:keys * 查詢所有的鍵压彭,會遍歷所有的鍵值睦优,復雜度O(n)
鍵總數(shù):dbsize 查詢鍵總數(shù),直接獲取redis內(nèi)置的鍵總數(shù)變量
檢查鍵是否存在:exists key 存在返回1哮塞,不存在返回0
刪除:del key [key...] 返回結(jié)果為成功刪除鍵的個數(shù)
5.Redis客戶端安裝
項目地址: https://github.com/uglide/RedisDesktopManager
命令行輸入:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null ; brew install caskroom/cask/brew-cask 2> /dev/null
brew cask install rdm