自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳細(xì)講解 Redis 的兩種安裝部署方式

運(yùn)維 數(shù)據(jù)庫運(yùn)維 Redis
Redis 是一款比較常用的 NoSQL 數(shù)據(jù)庫,我們通常使用 Redis 來做緩存,這是一篇關(guān)于 Redis 安裝的文章,所以不會涉及到 Redis 的高級特性和使用場景,Redis 能夠兼容絕大部分的 POSIX 系統(tǒng)。

 Redis 是一款比較常用的 NoSQL 數(shù)據(jù)庫,我們通常使用 Redis 來做緩存,這是一篇關(guān)于 Redis 安裝的文章,所以不會涉及到 Redis 的高級特性和使用場景,Redis 能夠兼容絕大部分的 POSIX 系統(tǒng),例如 Linux、OS X 等,但是很遺憾不支持在 Windows 上安裝,當(dāng)然如果你需要在 windows 下安裝 redis 的話,也是可以的,微軟公司的開源技術(shù)組在 GitHub 上 維護(hù)一個 Redis 的分支,GitHub 地址為:https://github.com/microsoftarchive/redis,我看了一下這上面的版本比較舊,所以我個人不推薦使用這個來安裝 Redis ,Windows 用戶可以使用 Docker 容器來安裝,也是非常方便、簡單的,接下來我們就一起來看看 Redis 的安裝方式吧。

[[282267]]

1、Linux 系統(tǒng)下安裝 redis

安裝

在 redis 官網(wǎng)中有安裝教程,鏈接:https://redis.io/download,安裝步驟我拷貝過來了,步驟如下:

  1. $ wget http://download.redis.io/releases/redis-5.0.6.tar.gz 
  2. $ tar xzf redis-5.0.6.tar.gz 
  3. $ cd redis-5.0.6 
  4. $ make 

我在 /usr/local 目錄下面操作的這些命令,也就是說 Redis 的安裝目錄為 /usr/local ,這些命令執(zhí)行完之后你的機(jī)器上安裝好 Redis ,在安裝的過程中,如果你的機(jī)器上沒有安裝 gcc ,你安裝好 gcc 之后再 make 可能會報以下錯誤

  1. jemalloc/jemalloc.h: No such file or directory 

當(dāng)時沒有截取詳細(xì)的錯誤信息,只把主要的一段截取出來了,這個錯誤的原因是我們上一次 make 報錯之后,有編譯后的文件,所以我們需要清除上一次的殘留文件再重新編譯,將 make 換成 make distclean && make 就可以了。

redis.conf 文件

redis.conf 是 Redis 的配置文件,redis 的所有配置有在這個文件里面,這個文件挺大的有接近 1400 行,有關(guān) redis 的操作、使用說明都在里面,可以詳細(xì)的閱讀閱讀這個配置文件,大部分情況下我們使用默認(rèn)配置就行,只需要設(shè)置少量配置就行。redis.conf 的存放位置在 Redis 的安裝目錄下,我這里是 /usr/local/redis-5.0.5 目錄下,一起來看看我們可能會修改的幾個配置:

  • bind 127.0.0.1:允許訪問機(jī)器的IP,默認(rèn)只有本機(jī)才能訪問,你可以修改 ip 來運(yùn)行其他機(jī)器也能訪問,但是如果你想讓所有機(jī)器都可以訪問的話,直接設(shè)置為 bind 0.0.0.0 就行了。
  • port 6379:redis 實例啟動的端口,默認(rèn)為 6379
  • daemonize no:是否以守護(hù)進(jìn)程的方式運(yùn)行,默認(rèn)是 no,也就是說你把啟動窗口關(guān)閉了,redis 實例也就關(guān)閉了,一般這個選項我們設(shè)置為 yes,以守護(hù)進(jìn)程的方式運(yùn)行,說俗一點就是后臺運(yùn)行。
  • pidfile /var/run/redis_6379.pid:如果我們使用守護(hù)進(jìn)程方式運(yùn)行的話 ,就會產(chǎn)生一個后綴名為 .pid 的文件,這個使用默認(rèn)的也行
  • dir ./:持久化文件存放位置,這個配置我們還是設(shè)置一下為好,我這里設(shè)置為 dir /usr/local/redis_data
  • appendonly no:是否開啟 AOF 持久化方式,redis 默認(rèn)只開啟了 RDB 模式,這里我們設(shè)置為 yes,兩種方式都開啟,雙重保險,關(guān)于這兩種方式的區(qū)別,我們后面在學(xué)習(xí)

好像大概設(shè)置這幾個就好了,更多關(guān)于 redis.conf 的配置,你可以詳細(xì)閱讀 redis.conf 配置文件或者查閱相關(guān)手冊。

redis 的啟動

Redis 的啟動非常簡單,Redis 安裝完成之后,會在 /usr/local/redis-5.0.5/src 存放 Redis 的 shell 交互命令,其中有一個 redis-server ,這個就是 Redis 的啟動命令,執(zhí)行:

  1. ./redis-server   /usr/local/redis-5.0.5/redis.conf 

后面跟的是 redis.conf 的文件路徑,不出意外的話我們將啟動成功,你會看到如下界面:

 

redis 啟動

這里我們使用的是守護(hù)進(jìn)程的方式啟動,所以不會出現(xiàn)帶有 redis logo 的啟動界面,我們可以使用 shell 命令登錄到 Redis 中,還是在 src 目錄下面,執(zhí)行下面這條命令:

  1. ./redis-cli 

這命令你就進(jìn)入了 shell 交互界面,./redis-cli 命令可以帶一些參數(shù),例如 -h IP 這個就可以進(jìn)入指定機(jī)器的 Redis 實例,進(jìn)入之后你就可以進(jìn)行一些操作了,如下圖所示:

 

redis 操作

redis 關(guān)閉

Redis 的關(guān)閉方式有兩種,一種是在 shell 交互界面關(guān)閉,另一種是 kill + 進(jìn)程號關(guān)閉 Redis 實例的方式

shell 交互界面關(guān)閉

  1. shutdown [nosave|save] 

在 shell 交互界面輸入 shutdown 命令就可以關(guān)閉 Redis 實例,后面有一個可選參數(shù),nosave 就是不將內(nèi)存中的數(shù)據(jù)持久化,save 就是將內(nèi)存中的數(shù)據(jù)持久化。shutdown 關(guān)閉方式是比較優(yōu)雅的關(guān)閉方式,建議使用這種關(guān)閉方式

Kill + 進(jìn)程號關(guān)閉 Redis 實例

使用 ps -ef|grep redis 查看 Redis 進(jìn)程號,如下圖所示:

 

查看 redis 進(jìn)程號

在這里找到我們需要關(guān)閉 redis 實例的進(jìn)程號,比如這里我們的進(jìn)程號為 27133,那么我們就直接使用 kill 27133 關(guān)閉 Redis 實例服務(wù),這種方式我們需要注意一個地方,那就是需要我們?nèi)グ?pid 文件刪掉,pid 文件存放的位置我們在 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 不會進(jìn)行持久化操作,除此之外,還會造成緩沖區(qū)等資源不能優(yōu)雅關(guān)閉,極端情況下會造成 AOF 和復(fù)制丟失數(shù)據(jù)的情況

redis 開機(jī)自啟動

在服務(wù)器上我們可能需要將 Redis 設(shè)置為開機(jī)自啟動,其實這個也非常簡單,我們只需要做以下四步操作即可。

1、 編寫配置腳本 vim /etc/init.d/redis

  1. #!/bin/sh 
  2. # Simple Redis init.d script conceived to work on Linux systems 
  3. as it does use of the /proc filesystem. 
  4. #chkconfig: 2345 80 90 
  5. #description:auto_run 
  6. # 端口號 
  7. REDISPORT=6379 
  8. # 啟動命令 
  9. EXEC=/usr/local/redis-5.0.5/src/redis-server 
  10. # shell 交付命令 
  11. CLIEXEC=/usr/local/redis-5.0.5/src/redis-cli 
  12. # pid 存放位置 
  13. PIDFILE=/var/run/redis_${REDISPORT}.pid 
  14. # redis 配置文件 
  15. CONF="/usr/local/redis-5.0.5/redis.conf" 
  16.  
  17. case "$1" in 
  18.     start) 
  19.         if [ -f $PIDFILE ] 
  20.         then 
  21.                 echo "$PIDFILE exists, process is already running or crashed" 
  22.         else 
  23.                 echo "Starting Redis server..." 
  24.                 $EXEC $CONF 
  25.         fi 
  26.         ;; 
  27.     stop) 
  28.         if [ ! -f $PIDFILE ] 
  29.         then 
  30.                 echo "$PIDFILE does not exist, process is not running" 
  31.         else 
  32.                 PID=$(cat $PIDFILE) 
  33.                 echo "Stopping ..." 
  34.                 $CLIEXEC -p $REDISPORT shutdown 
  35.                 while [ -x /proc/${PID} ] 
  36.                 do 
  37.                     echo "Waiting for Redis to shutdown ..." 
  38.                     sleep 1 
  39.                 done 
  40.                 echo "Redis stopped" 
  41.         fi 
  42.         ;; 
  43.     *) 
  44.         echo "Please use start or stop as first argument" 
  45.         ;; 
  46. esac 

2、修改 redis.conf,設(shè)置 redis 為守護(hù)進(jìn)程方式運(yùn)行

  1. ################################# GENERAL ##################################### 
  2.  
  3. By default Redis does not run as a daemon. Use 'yes' if you need it. 
  4. # Note that Redis will write a pid file in /var/run/redis.pid when daemonized. 
  5. daemonize yes 

3、修改文件執(zhí)行權(quán)限

  1. chmod +x /etc/init.d/redis 

4、設(shè)置開機(jī)啟動

  1. # 啟動 redis 
  2. service redis start 
  3. # 停止 redis 
  4. service redis stop 
  5. # 開啟服務(wù)自啟動 
  6. chkconfig redis on 

2、Docker 安裝Redis

Docker 安裝 Redis 整體來說比較方便,我說的是非生產(chǎn)環(huán)境,就是自己搭著測試或者學(xué)習(xí)的環(huán)境,下面的步驟全部建立在你已經(jīng)在你的電腦上安裝了 Docker 的基礎(chǔ)上,下面就來開啟安裝之旅。

1、拉取 redis 鏡像

  1. docker pull redis 

2、快速啟動

  1. docker run -p 6379:6379 --name myredis -d redis redis-server --appendonly yes 

這種方式啟動使用的默認(rèn)的 redis.conf 配置,我們先來看看這幾個參數(shù)的意思

  • -p 6379:6379:映射端口,前面的 6379 是外部 redis 端口,后面的 6379 是容器內(nèi)部的 redis 端口
  • --name myredis :容器對應(yīng)的名稱
  • redis redis-server:redis 代表著 redis 鏡像 redis-server 表示的是執(zhí)行的命令,也是就 redis 的啟動命令,跟我們 linux 下面的 ./redis-server 一樣
  • --appendonly yes:開啟 AOF 持久化

3、使用 redis

通過上面的步驟,我們已經(jīng)在 Docker 中啟動了 Redis 服務(wù),下面我們就來通過 redis-cli 訪問一下,使用下面這條命令就可以啟動 redis-cli

  1. docker exec -it dockerRedis redis-cli 

其中 dockerRedis 是你啟動 Redis 容器名稱,不出意外的話,你可以啟動一個 redis-cli 客戶端,如下圖所示:

 

docker redis-cli 客戶端

上面就是使用 Docker 簡單的啟動 Redis ,整體來說比 linux 上面安裝啟動要方便不少,主要是你可以在 windows 系統(tǒng)上運(yùn)行,雖然最終它還是運(yùn)行在 linux 上面的,但是這個過程我們是無感知的。你可以能會問:我想在啟動的時候知道 redis.conf 可行不?答案是可行的,但是如果你對 Docker 不了解的話,可能會遇到一些坑,我就遇到了,因為我對 Docker 不是太了解,平時使用 docker 都是只需要傳入?yún)?shù)就好了,沒有傳過文件。關(guān)于啟動時指定配置文件,在 redis 鏡像那里有說明,但是是 linux 下面的,并不是 windows 系統(tǒng)下的 Docker 配置方式,所以我就百度到了下面這段命令

  1. 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 

這段命令就是一個坑,壓根就沒有,啟動這條命令,你將得到如下反饋:

顯然這條命令是沒有用的,當(dāng)然這只是我個人認(rèn)為,也許是我操作失誤,也許是我知識面不夠,如果朋友們發(fā)現(xiàn)錯誤還請多多指教,這里我就先當(dāng)它是錯誤的,正確的做法是在 Docker 的宿主機(jī)上存放 redis.conf 文件,顯然 Docker 的宿主機(jī)并不是 windows 系統(tǒng),而是啟動在 windows 系統(tǒng)上的虛擬機(jī),所以我們需要進(jìn)入到虛擬機(jī)里面,Docker Quickstart Terminal啟動默認(rèn)界面并沒有正真的登錄到虛擬機(jī),所以我們需要更改登錄方式,使用 docker-machine ssh 命令,如下圖所示:

 

Docker Quickstart Terminal 啟動方式 

這樣我們就進(jìn)入到了真正的虛擬機(jī)里面,我們就在一臺虛擬機(jī)上操作了,跟我們在 linux 上的安裝一樣,我們先建立兩個目錄用來存放 Redis 配置:

  1. /usr/local/redis:存放redis.conf /usr/local/redis/data :存放持久化文件 

建立好兩個目錄后, 我們把 redis.conf 放在 /usr/local/redis 目錄下,使用下面這條 Docker 命令啟動 Redis 鏡像:

  1. 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 啟動命令跟上面的有一點區(qū)別,有兩個參數(shù)我在這里說明一下:

  • -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)持久化文件的存放位置也會映射到宿主機(jī),換句話說在 /usr/local/redis/data 也會存放持久化文件

到此,Docker 安裝 Redis 的復(fù)雜操作也做完了,如果沒什么特別要求的話,使用簡單的 docker 啟動就好了,簡單方便,完全夠用了。

 

責(zé)任編輯:華軒 來源: 平頭哥的技術(shù)博文
相關(guān)推薦

2010-08-03 13:27:04

FlexBuilder

2010-01-08 10:52:17

Ubuntu VMwa

2011-03-03 10:26:04

Pureftpd

2021-05-27 10:57:01

TCP定時器網(wǎng)絡(luò)協(xié)議

2010-02-24 14:25:48

WCF地址

2009-06-25 13:43:00

Buffalo AJA

2010-10-21 16:24:18

sql server升

2010-08-06 09:38:11

Flex讀取XML

2023-03-29 13:06:36

2014-05-21 11:00:55

Windows Azu分布式部署

2024-06-06 08:32:52

.NET框架代碼

2010-09-07 11:09:59

2010-07-27 15:03:37

Flex ArrayC

2010-05-10 18:19:00

負(fù)載平衡技術(shù)

2011-03-23 11:22:14

oracle dbli

2024-09-20 11:32:28

.NET內(nèi)存管理

2010-07-14 10:30:26

Perl多線程

2011-04-02 09:48:38

深拷貝

2016-11-07 09:02:02

Malloc內(nèi)存syscall

2011-06-16 10:02:08

JAVA靜態(tài)載入
點贊
收藏

51CTO技術(shù)棧公眾號