Redis 是一個(gè)開源、支持網(wǎng)絡(luò)、基于內(nèi)存、鍵值對(duì)的 Key-Value 數(shù)據(jù)庫(kù),本篇文章主要介紹了Redis 對(duì)比 Memcached 并在 CentOS 下進(jìn)行安裝配置詳解,有興趣的可以了解一下。
了解一下 Redis
Redis 是一個(gè)開源、支持網(wǎng)絡(luò)、基于內(nèi)存、鍵值對(duì)的 Key-Value 數(shù)據(jù)庫(kù),使用 ANSI C 編寫,并提供多種語(yǔ)言的 API ,它幾乎沒(méi)有上手難度,只需要幾分鐘我們就能完成安裝工作,并讓它開始與應(yīng)用程序順暢協(xié)作。換句話來(lái)說(shuō),只需投入一小部分時(shí)間與精力,大家就能獲得立竿見(jiàn)影且效果極佳的性能表現(xiàn)提升,就是說(shuō)它是一個(gè)非常簡(jiǎn)單緩存解決方案。它支持存儲(chǔ)的 Value 類型不僅限于字符串,支持主從同步,數(shù)據(jù)持久化等等,大家都認(rèn)為 Redis 是最流行的 Key-Value 存儲(chǔ)數(shù)據(jù)庫(kù),肯定有人問(wèn) Memcached 呢?
Redis VS Memcached
首先我剛?cè)?DB-Engines.com 的數(shù)據(jù)庫(kù)排行中看了一下,Redis 排行第九,Key-value store
第一位;Memcached 排行二十三,Key-value store
第二位。這當(dāng)然不能說(shuō)明什么了。
Redis 支持更多的數(shù)據(jù)類型,包括:String、Hash、List、Set;Memcached 僅支持一種 String 數(shù)據(jù)類型。
Redis 通過(guò) Multi/Watch/Exec
等命令可以支持事務(wù)的概念,原子性的執(zhí)行一批命令;Memcached 的應(yīng)用模式中,除了increment/decrement這樣的原子操作命令,不存在對(duì)事務(wù)的支持。
Redis 可以以 master-slave
的方式配置服務(wù)器實(shí)現(xiàn)主從同步備份,同時(shí)只持兩種持久化方案;Memcached 不保證存儲(chǔ)的數(shù)據(jù)的有效性,也不做數(shù)據(jù)的持久化工作。當(dāng)然這些也都說(shuō)明不了什么。
每種事物存在這個(gè)世界總有他的意義。Memcached 的內(nèi)部?jī)?nèi)存管理機(jī)制雖然不像 Redis 的那樣復(fù)雜,但卻更具實(shí)際效率,因?yàn)?Memcached 在處理元數(shù)據(jù)時(shí)所消耗的內(nèi)存資源相對(duì)更少;在橫向擴(kuò)展方面也比Redis更具優(yōu)勢(shì),由于其在設(shè)計(jì)上的思路傾向以及相對(duì)更為簡(jiǎn)單的功能設(shè)置。比如,緩存一段字符串或 Html頁(yè)面的時(shí)候,相對(duì)來(lái)說(shuō)用 Memcached 會(huì)更好一些。
CentOS 下 安裝 Redis
1.下載解壓安裝 redis ,這里是官網(wǎng)下載的最新的3.2.5
版本,依然通過(guò)wget
下載(我喜歡這種方式)。
wget http://download.redis.io/releases/redis-3.2.5.tar.gz
tar xzf redis-3.2.5.tar.gz
mv redis-3.2.5 /usr/local/redis
上面 mv redis-3.2.5 /usr/local/redis
命令是移動(dòng) Redis 安裝文件到安裝目錄,當(dāng)然這個(gè)目錄你可以自定義。
2.進(jìn)入目錄,編譯安裝
cd /usr/local/redis
make
make install
安裝完成,這時(shí)候會(huì)在/usr/local/bin/
目錄下看到redis-server、redis-cli
等這個(gè)可執(zhí)行腳本,進(jìn)入看一下,如果沒(méi)有,就要去解壓目錄復(fù)制進(jìn)去了。
![](/d/20211018/7e2e80c12715f4a10171693924cd6577.gif)
3.配置redis.conf
回到/usr/local/redis
目錄,進(jìn)行配置:
cd ../redis
vim redis.conf
![](/d/20211018/e3c328804972f3178a0cacb067deb9bb.gif)
這里要修改兩個(gè)地方,一個(gè)bind
和daemonize
就行。
bind
這里配置要注意,默認(rèn)是只有一個(gè)127.0.0.1
,這個(gè)時(shí)候只能自己連接,其他局域網(wǎng)內(nèi)是連接不上的。所以,需要配置多個(gè) IP ,這樣就可以局域網(wǎng)內(nèi)進(jìn)行連接了。![](/d/20211018/5525643308c6e8250a4c261559d205f9.gif)
daemonize
是設(shè)置是否后臺(tái)啟動(dòng) Redis,默認(rèn)no
,正常都需要以服務(wù)形式啟動(dòng) Redis,所以這里設(shè)置為yes
。![](/d/20211018/4a7af90d4548f03214888cfaf5dd3561.gif)
修改完后,保存退出。
這里配置文件的各個(gè)參數(shù)信息我不再一一贅述,有位叫 linli8 的博主據(jù)說(shuō)熬夜翻譯了一下,哈哈,有興趣可以看看: https://github.com/linli8/cnblogs/blob/master/redis%E5%89%AF%E6%9C%AC.conf
4.啟動(dòng)
cd /usr/local/bin/
redis-server /usr/local/redis/redis.conf
netstat -anp | grep 6379
![](/d/20211018/a3eabb64b09512320126e9f033bdd73f.gif)
5.測(cè)試一下
這里用命令行模式連接上 Redis 進(jìn)行一個(gè)簡(jiǎn)單的設(shè)置、獲取緩存測(cè)試。
redis-cli #連接 Redis ,默認(rèn)是本機(jī)的。
keys * #查看現(xiàn)在所有 key
set name mafly #設(shè)置一個(gè)key為`name`,value為`mafly`的緩存對(duì)象。
get name #獲取key為`name`的緩存
![](/d/20211018/dcf8ddfeba1db6c86f9e278b8a7615e1.gif)
6.關(guān)閉 Redis
![](/d/20211018/ef997ccdb694efa636bfa29c922159c6.gif)
通過(guò) netstat 可以看出來(lái)端口已經(jīng)是TIME_WAIT
狀態(tài)了。
總結(jié)一下
經(jīng)過(guò)這次安裝配置 Redis 的過(guò)程,也讓我更加了解了一下 Memcached ,也更明白了這兩種最流行的 Key-Value 緩存服務(wù)的優(yōu)劣勢(shì),當(dāng)然大多數(shù)都是通過(guò)網(wǎng)絡(luò)獲取,在實(shí)際運(yùn)用中怎樣也在監(jiān)測(cè)中。
每一個(gè)開源軟件都值得大家去尊敬,每次用到開源軟件我都懷著一顆感動(dòng)的心,感謝作者的無(wú)私奉獻(xiàn),當(dāng)然商用軟件的在國(guó)內(nèi)的境遇依然值得人深思,一家有能力購(gòu)買正版軟件的公司為什么還是在用著盜版軟件?
希望這篇文章對(duì)你有稍微一點(diǎn)用。也希望大家多多支持腳本之家。
您可能感興趣的文章:- Redis和Memcached的區(qū)別詳解
- redis與memcached的區(qū)別_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理