這篇文章將為大家詳細(xì)講解有關(guān)安裝配置redis的步驟,文章內(nèi)容質(zhì)量較高,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)是專(zhuān)業(yè)的磐安網(wǎng)站建設(shè)公司,磐安接單;提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行磐安網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
Redis 能夠兼容絕大部分的 POSIX 系統(tǒng),例如 Linux、OS X 等,但是很遺憾不支持在 Windows 上安裝,當(dāng)然如果你需要在 windows 下安裝 redis 的話(huà),也是可以的,微軟公司的開(kāi)源技術(shù)組在 GitHub 上 維護(hù)一個(gè) Redis 的分支,GitHub 地址為:https://github.com/microsoftarchive/redis,我看了一下這上面的版本比較舊,所以我個(gè)人不推薦使用這個(gè)來(lái)安裝 Redis ,Windows 用戶(hù)可以使用 Docker 容器來(lái)安裝,也是非常方便、簡(jiǎn)單的。1、Linux 系統(tǒng)下安裝 redis
安裝
在 redis 官網(wǎng)中有安裝教程,鏈接:https://redis.io/download,安裝步驟我拷貝過(guò)來(lái)了,步驟如下:
$ wget http://download.redis.io/releases/redis-5.0.6.tar.gz $ tar xzf redis-5.0.6.tar.gz $ cd redis-5.0.6 $ make
我在 /usr/local 目錄下面操作的這些命令,也就是說(shuō) Redis 的安裝目錄為 /usr/local ,這些命令執(zhí)行完之后你的機(jī)器上安裝好 Redis ,在安裝的過(guò)程中,如果你的機(jī)器上沒(méi)有安裝 gcc ,你安裝好 gcc 之后再 make 可能會(huì)報(bào)以下錯(cuò)誤
jemalloc/jemalloc.h: No such file or directory
當(dāng)時(shí)沒(méi)有截取詳細(xì)的錯(cuò)誤信息,只把主要的一段截取出來(lái)了,這個(gè)錯(cuò)誤的原因是我們上一次 make 報(bào)錯(cuò)之后,有編譯后的文件,所以我們需要清除上一次的殘留文件再重新編譯,將 make 換成 make distclean && make 就可以了。
redis.conf 文件
redis.conf 是 Redis 的配置文件,redis 的所有配置有在這個(gè)文件里面,這個(gè)文件挺大的有接近 1400 行,有關(guān) redis 的操作、使用說(shuō)明都在里面,可以詳細(xì)的閱讀閱讀這個(gè)配置文件,大部分情況下我們使用默認(rèn)配置就行,只需要設(shè)置少量配置就行。redis.conf 的存放位置在 Redis 的安裝目錄下,我這里是 /usr/local/redis-5.0.5 目錄下,一起來(lái)看看我們可能會(huì)修改的幾個(gè)配置:
● bind 127.0.0.1:允許訪(fǎng)問(wèn)機(jī)器的IP,默認(rèn)只有本機(jī)才能訪(fǎng)問(wèn),你可以修改 ip 來(lái)運(yùn)行其他機(jī)器也能訪(fǎng)問(wèn),但是如果你想讓所有機(jī)器都可以訪(fǎng)問(wèn)的話(huà),直接設(shè)置為 bind 0.0.0.0 就行了。
● port 6379:redis 實(shí)例啟動(dòng)的端口,默認(rèn)為 6379
● daemonize no:是否以守護(hù)進(jìn)程的方式運(yùn)行,默認(rèn)是 no,也就是說(shuō)你把啟動(dòng)窗口關(guān)閉了,redis 實(shí)例也就關(guān)閉了,一般這個(gè)選項(xiàng)我們?cè)O(shè)置為 yes,以守護(hù)進(jìn)程的方式運(yùn)行,說(shuō)俗一點(diǎn)就是后臺(tái)運(yùn)行。
● pidfile /var/run/redis_6379.pid:如果我們使用守護(hù)進(jìn)程方式運(yùn)行的話(huà) ,就會(huì)產(chǎn)生一個(gè)后綴名為 .pid 的文件,這個(gè)使用默認(rèn)的也行
● dir ./:持久化文件存放位置,這個(gè)配置我們還是設(shè)置一下為好,我這里設(shè)置為 dir /usr/local/redis_data
● appendonly no:是否開(kāi)啟 AOF 持久化方式,redis 默認(rèn)只開(kāi)啟了 RDB 模式,這里我們?cè)O(shè)置為 yes,兩種方式都開(kāi)啟,雙重保險(xiǎn),關(guān)于這兩種方式的區(qū)別,我們后面在學(xué)習(xí)
● 好像大概設(shè)置這幾個(gè)就好了,更多關(guān)于 redis.conf 的配置,你可以詳細(xì)閱讀 redis.conf 配置文件或者查閱相關(guān)手冊(cè)。
redis 的啟動(dòng)
Redis 的啟動(dòng)非常簡(jiǎn)單,Redis 安裝完成之后,會(huì)在 /usr/local/redis-5.0.5/src 存放 Redis 的 shell 交互命令,其中有一個(gè) redis-server ,這個(gè)就是 Redis 的啟動(dòng)命令,執(zhí)行:
./redis-server /usr/local/redis-5.0.5/redis.conf
后面跟的是 redis.conf 的文件路徑,不出意外的話(huà)我們將啟動(dòng)成功,你會(huì)看到如下界面:
這里我們使用的是守護(hù)進(jìn)程的方式啟動(dòng),所以不會(huì)出現(xiàn)帶有 redis logo 的啟動(dòng)界面,我們可以使用 shell 命令登錄到 Redis 中,還是在 src 目錄下面,執(zhí)行下面這條命令:
./redis-cli
這命令你就進(jìn)入了 shell 交互界面,./redis-cli 命令可以帶一些參數(shù),例如 -h IP 這個(gè)就可以進(jìn)入指定機(jī)器的 Redis 實(shí)例,進(jìn)入之后你就可以進(jìn)行一些操作了,如下圖所示:
redis 關(guān)閉
Redis 的關(guān)閉方式有兩種,一種是在 shell 交互界面關(guān)閉,另一種是 kill + 進(jìn)程號(hào)關(guān)閉 Redis 實(shí)例的方式
shell 交互界面關(guān)閉
shutdown [nosave|save]
在 shell 交互界面輸入 shutdown 命令就可以關(guān)閉 Redis 實(shí)例,后面有一個(gè)可選參數(shù),nosave 就是不將內(nèi)存中的數(shù)據(jù)持久化,save 就是將內(nèi)存中的數(shù)據(jù)持久化。shutdown 關(guān)閉方式是比較優(yōu)雅的關(guān)閉方式,建議使用這種關(guān)閉方式
Kill + 進(jìn)程號(hào)關(guān)閉 Redis 實(shí)例
使用 ps -ef|grep redis 查看 Redis 進(jìn)程號(hào),如下圖所示:
在這里找到我們需要關(guān)閉 redis 實(shí)例的進(jìn)程號(hào),比如這里我們的進(jìn)程號(hào)為 27133,那么我們就直接使用 kill 27133 關(guān)閉 Redis 實(shí)例服務(wù),這種方式我們需要注意一個(gè)地方,那就是需要我們?nèi)グ?pid 文件刪掉,pid 文件存放的位置我們?cè)?redis.conf 里配置的 pidfile /var/run/redis_6379.pid,我們需要到 /var/run 目錄下把 redis_6379.pid 刪掉,這樣下一次才能正常重啟 Redis 服務(wù)。
上面兩種方式都可以關(guān)閉 Redis 服務(wù),隨便選一種都行,但是切記不要使用 Kill 9 方式關(guān)閉 Redis 進(jìn)程,這樣 Redis 不會(huì)進(jìn)行持久化操作,除此之外,還會(huì)造成緩沖區(qū)等資源不能優(yōu)雅關(guān)閉,極端情況下會(huì)造成 AOF 和復(fù)制丟失數(shù)據(jù)的情況
redis 開(kāi)機(jī)自啟動(dòng)
在服務(wù)器上我們可能需要將 Redis 設(shè)置為開(kāi)機(jī)自啟動(dòng),其實(shí)這個(gè)也非常簡(jiǎn)單,我們只需要做以下四步操作即可。
1、 編寫(xiě)配置腳本 vim /etc/init.d/redis
#!/bin/sh # # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. #chkconfig: 2345 80 90 #description:auto_run # 端口號(hào) REDISPORT=6379 # 啟動(dòng)命令 EXEC=/usr/local/redis-5.0.5/src/redis-server # shell 交付命令 CLIEXEC=/usr/local/redis-5.0.5/src/redis-cli # pid 存放位置 PIDFILE=/var/run/redis_${REDISPORT}.pid # redis 配置文件 CONF="/usr/local/redis-5.0.5/redis.conf" case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;; esac
2、修改 redis.conf,設(shè)置 redis 為守護(hù)進(jìn)程方式運(yùn)行
################################# GENERAL ##################################### # By default Redis does not run as a daemon. Use 'yes' if you need it. # Note that Redis will write a pid file in /var/run/redis.pid when daemonized. daemonize yes
3、修改文件執(zhí)行權(quán)限
chmod +x /etc/init.d/redis
4、設(shè)置開(kāi)機(jī)啟動(dòng)
# 啟動(dòng) redis service redis start # 停止 redis service redis stop # 開(kāi)啟服務(wù)自啟動(dòng) chkconfig redis on
2、Docker 安裝 Redis
Docker 安裝 Redis 整體來(lái)說(shuō)比較方便,我說(shuō)的是非生產(chǎn)環(huán)境,就是自己搭著測(cè)試或者學(xué)習(xí)的環(huán)境,下面的步驟全部建立在你已經(jīng)在你的電腦上安裝了 Docker 的基礎(chǔ)上,下面就來(lái)開(kāi)啟安裝之旅。
1、拉取 redis 鏡像
docker pull redis
2、快速啟動(dòng)
docker run -p 6379:6379 --name myredis -d redis redis-server --appendonly yes
這種方式啟動(dòng)使用的默認(rèn)的 redis.conf 配置,我們先來(lái)看看這幾個(gè)參數(shù)的意思
3、使用 redis
通過(guò)上面的步驟,我們已經(jīng)在 Docker 中啟動(dòng)了 Redis 服務(wù),下面我們就來(lái)通過(guò) redis-cli 訪(fǎng)問(wèn)一下,使用下面這條命令就可以啟動(dòng) redis-cli
docker exec -it dockerRedis redis-cli
其中 dockerRedis 是你啟動(dòng) Redis 容器名稱(chēng),不出意外的話(huà),你可以啟動(dòng)一個(gè) redis-cli 客戶(hù)端,如下圖所示:
上面就是使用 Docker 簡(jiǎn)單的啟動(dòng) Redis ,整體來(lái)說(shuō)比 linux 上面安裝啟動(dòng)要方便不少,主要是你可以在 windows 系統(tǒng)上運(yùn)行,雖然最終它還是運(yùn)行在 linux 上面的,但是這個(gè)過(guò)程我們是無(wú)感知的。你可以能會(huì)問(wèn):我想在啟動(dòng)的時(shí)候知道 redis.conf 可行不?答案是可行的,但是如果你對(duì) Docker 不了解的話(huà),可能會(huì)遇到一些坑,我就遇到了,因?yàn)槲覍?duì) Docker 不是太了解,平時(shí)使用 docker 都是只需要傳入?yún)?shù)就好了,沒(méi)有傳過(guò)文件。關(guān)于啟動(dòng)時(shí)指定配置文件,在 redis 鏡像那里有說(shuō)明,但是是 linux 下面的,并不是 windows 系統(tǒng)下的 Docker 配置方式,所以我就百度到了下面這段命令
docker run -v /d:/dockerdata/redis/config/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf
這段命令就是一個(gè)坑,壓根就沒(méi)有,啟動(dòng)這條命令,你將得到如下反饋:
顯然這條命令是沒(méi)有用的,當(dāng)然這只是我個(gè)人認(rèn)為,也許是我操作失誤,也許是我知識(shí)面不夠,如果朋友們發(fā)現(xiàn)錯(cuò)誤還請(qǐng)多多指教,這里我就先當(dāng)它是錯(cuò)誤的,正確的做法是在 Docker 的宿主機(jī)上存放 redis.conf 文件,顯然 Docker 的宿主機(jī)并不是 windows 系統(tǒng),而是啟動(dòng)在 windows 系統(tǒng)上的虛擬機(jī),所以我們需要進(jìn)入到虛擬機(jī)里面,Docker Quickstart Terminal 啟動(dòng)默認(rèn)界面并沒(méi)有正真的登錄到虛擬機(jī),所以我們需要更改登錄方式,使用 docker-machine ssh 命令,如下圖所示:
這樣我們就進(jìn)入到了真正的虛擬機(jī)里面,我們就在一臺(tái)虛擬機(jī)上操作了,跟我們?cè)?linux 上的安裝一樣,我們先建立兩個(gè)目錄用來(lái)存放 Redis 配置:
/usr/local/redis:存放redis.conf
/usr/local/redis/data :存放持久化文件
建立好兩個(gè)目錄后, 我們把 redis.conf 放在 /usr/local/redis 目錄下,使用下面這條 Docker 命令啟動(dòng) Redis 鏡像:
docker run -p 6379:6379 -v /usr/local/redis/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/redis/data:/data --name dockerRedis -d redis redis-server /usr/local/etc/redis/redis.conf
這條 docker 啟動(dòng)命令跟上面的有一點(diǎn)區(qū)別,有兩個(gè)參數(shù)我在這里說(shuō)明一下:
● -v /usr/local/redis/redis.conf:/usr/local/etc/redis/redis.conf:這參數(shù)是將 /usr/local/redis/redis.conf 復(fù)制到 /usr/local/etc/redis/redis.conf 下
● -v /usr/local/redis/data:/data:容器內(nèi)持久化文件的存放位置也會(huì)映射到宿主機(jī),換句話(huà)說(shuō)在 /usr/local/redis/data 也會(huì)存放持久化文件
到此,Docker 安裝 Redis 的復(fù)雜操作也做完了,如果沒(méi)什么特別要求的話(huà),使用簡(jiǎn)單的 docker 啟動(dòng)就好了,簡(jiǎn)單方便,完全夠用了。
以上就是安裝配置Redis的步驟,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊,感謝各位的閱讀。