
特性
速度快
速度快的原因歸納如下:
Redis的所有數(shù)據(jù)都是存在內(nèi)存中
使用C語(yǔ)言實(shí)現(xiàn)
使用了單線(xiàn)程架構(gòu),預(yù)防了多線(xiàn)程可能產(chǎn)生的死鎖
基于鍵值對(duì)的數(shù)據(jù)結(jié)構(gòu)服務(wù)器
豐富的功能
- 鍵過(guò)期功能
- 發(fā)布訂閱功能,可以用來(lái)實(shí)現(xiàn)消息系統(tǒng)
- lua腳本消息
- 事務(wù)
- 流水線(xiàn)功能,這樣客戶(hù)端能將一批命令一次性傳到Redis,減少了網(wǎng)絡(luò)開(kāi)銷(xiāo)
簡(jiǎn)單穩(wěn)定
- redis的源碼很少,所以建議看源碼
客戶(hù)端語(yǔ)言多
持久化
redis提供了兩種持久機(jī)制
RDB
AOF
主從復(fù)制
高可用和分布式
Redis從2.8版本開(kāi)始提供了高可用實(shí)現(xiàn)Redis Sentinel,它保證了Redis節(jié)點(diǎn)的故障發(fā)現(xiàn)和故障自動(dòng)轉(zhuǎn)移。
redis從3.0版本開(kāi)始正式提供分布式實(shí)現(xiàn)Redis Cluster,它是Redis真正的分布式實(shí)現(xiàn)
使用場(chǎng)景
可以做什么
緩存
Redis提供了鍵值過(guò)期時(shí)間設(shè)置,并且提供 了靈活的最大內(nèi)存控制和內(nèi)存溢出淘汰策略。
排行榜系統(tǒng)
計(jì)數(shù)器應(yīng)用
社交網(wǎng)絡(luò)
比如點(diǎn)贊、粉絲、共同好友、推送、下拉刷新等功能都可以使用Redis
消息隊(duì)列系統(tǒng)
不能做
redis不是萬(wàn)金油,有很多適合它解決的問(wèn)題,但是也有很多不適合它的問(wèn)題。
數(shù)據(jù)規(guī)模:大規(guī)模和小規(guī)模。因?yàn)閞edis是存放在內(nèi)存中,如果是大規(guī)模的數(shù)據(jù)肯定是不行的
數(shù)據(jù)冷熱:對(duì)于熱數(shù)據(jù)(經(jīng)常使用的數(shù)據(jù))放在Redis可以減少數(shù)據(jù)庫(kù)的負(fù)擔(dān),但是對(duì)于冷數(shù)據(jù)來(lái)說(shuō)基本是對(duì)于內(nèi)存的浪費(fèi)
數(shù)據(jù)結(jié)構(gòu)和內(nèi)部編碼
五種數(shù)據(jù)結(jié)構(gòu)
- string
- hash
- list
- set
- zset
- 概要: 每種數(shù)據(jù)結(jié)構(gòu)都有有自己的內(nèi)部編碼實(shí)現(xiàn),而且是多種實(shí)現(xiàn)
內(nèi)部編碼
安裝Redis
下載安裝Redis指定版本的源碼包
解壓Redis源碼壓縮包
tar xzf redis-5.0.0.tar.gz
建立一個(gè)redis目錄的軟連接,指向Redis源碼版本
ln -s redis-5.0.0 redis
建立一個(gè)redis目錄的軟連接是為了不把redis目錄固定在指定版本上,有利于版本的升級(jí)
進(jìn)入Redis目錄,編譯
cd redis
make
編譯之前確保操作系統(tǒng)安裝了gcc
安裝
make install
XMind: ZEN - Trial Version