準(zhǔn)備工作
下載redis-4.0.12源碼包
http://download.redis.io/releases/redis-4.0.12.tar.gz安裝編譯redis需要的軟件包
sudo yum install gcc tcl -y
1. 安裝步驟
(1) 解壓源碼包
(2) 在源碼包根目錄下執(zhí)行 make 命令,編譯 redis 源碼
[hadoop@node01 redis-4.0.12]$ make
# 如果報(bào)錯(cuò):
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
# 則執(zhí)行以下名令:
make MALLOC=libc
# 編譯成功的話,執(zhí)行完命令之后看不到"Error"信息,并會(huì)提示進(jìn)行 make test 測(cè)試
Hint: It's a good idea to run 'make test' ;)
(3) 執(zhí)行 make test 命令,檢測(cè)redis的編譯結(jié)果
[hadoop@node01 redis-4.0.12]$ make test
# 等待一段時(shí)間,在日志末尾看到以下信息,說明redis編譯成功
All tests passed without errors!
(4) 執(zhí)行 make install 命令,安裝redis
可以指定安裝的目錄,如果不指定的話,會(huì)默認(rèn)把redis安裝在/usr/local目錄下,建議就把redis安裝在源碼包下面,且指定安裝位置的時(shí)候,路徑寫為絕對(duì)路徑
[hadoop@node01 redis-4.0.12]$ make PREFIX=/home/hadoop/apps/redis-4.0.12 install
我安裝的時(shí)候,因?yàn)榭紤]到執(zhí)行命令就是在源碼包目錄下執(zhí)行的,所以寫了相對(duì)路徑
# 錯(cuò)誤示范
[hadoop@node01 redis-4.0.12]$ make PREFIX=./ install
結(jié)果把redis安裝到源碼包目錄的src目錄下邊去了,在/home/hadoop/apps/redis-4.0.12/src目錄下生成為redis的bin目錄,原來執(zhí)行安裝命令的時(shí)候,程序會(huì)自動(dòng)進(jìn)入到src目錄下,所以假如你要用相對(duì)路徑,那么即使在源碼包目錄redis-4.0.12下執(zhí)行make install命令,也要這樣寫:
[hadoop@node01 redis-4.0.12]$ make PREFIX=../ install
同樣,執(zhí)行完命令后沒有在日志末尾沒有看到"Error"的信息,就代表安裝成功了。安裝成功后在redis-4.0.12目錄會(huì)生成一個(gè)bin目錄,其中內(nèi)容如下:
[hadoop@node02 bin]$ ll
total 21888
-rwxr-xr-x 1 hadoop hadoop 2452184 Jan 26 11:24 redis-benchmark
-rwxr-xr-x 1 hadoop hadoop 5777008 Jan 26 11:24 redis-check-aof
-rwxr-xr-x 1 hadoop hadoop 5777008 Jan 26 11:24 redis-check-rdb
-rwxr-xr-x 1 hadoop hadoop 2618224 Jan 26 11:24 redis-cli
lrwxrwxrwx 1 hadoop hadoop 12 Jan 26 11:24 redis-sentinel -> redis-server
-rwxr-xr-x 1 hadoop hadoop 5777008 Jan 26 11:24 redis-server
2. redis配置
(1) 配置 REDIS_HOME 環(huán)境變量
[hadoop@node01 redis-4.0.12]$ vim ~/.bash_profile
export REDIS_HOME=/home/hadoop/apps/redis-4.0.12
export PATH=$PATH:$REDIS_HOME/bin
[hadoop@node01 redis-4.0.12]$ source ~/.bash_profile
(2) 修改 redis 配置文件
復(fù)制redis源碼包目錄下的 redis.conf 為 redis_6379.conf,當(dāng)然直接修改也是可以的,但要養(yǎng)成備份的習(xí)慣,復(fù)制的文件名為 redis_6379.conf,這是配置redis的一種習(xí)慣,因?yàn)槲覀儐?dòng)redis服務(wù)要用的端口默認(rèn)為6379,假如要在一臺(tái)節(jié)點(diǎn)上啟動(dòng)多個(gè)服務(wù),那么每個(gè)服務(wù)的配置文件為 redis_${port}.conf,這樣很清楚的知道每個(gè)服務(wù)使用的端口號(hào)。
編輯 redis.conf 文件,根據(jù)需要修改以下內(nèi)容
# 服務(wù)以守護(hù)進(jìn)程方式啟動(dòng)
daemonize yes
# 啟動(dòng)服務(wù)占用的端口
port 6379
# 日志文件存放的路徑
logfile /home/hadoop/logs/redis/6379/redis_6379.log
# pid文件存放的路徑
pidfile /home/hadoop/pid/redis/6379/redis_6379.pid
# 持久化文件的存儲(chǔ)路徑
dir /home/hadoop/data/redis/6379
(3) redis服務(wù)器啟停命令
# 啟動(dòng)服務(wù)
redis-server /path/to/redis.conf
# 停止服務(wù)
redis-cli shutdown
redis-cli -a your_password shutdown
(4) 設(shè)置 redis 服務(wù)開機(jī)自啟動(dòng)
把 redis-4.0.12/utils 目錄下的 redis_init_script 腳本復(fù)制為 redis_6379,并移動(dòng)到 /etc/init.d 目錄下。
[hadoop@node01 utils]$ sudo cp redis_init_script /etc/init.d/redis_6379
編輯 redis_6379 文件,作以下修改:
- 在注釋中添加以下內(nèi)容:
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
文件原來的注釋是這樣的:
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
### BEGIN INIT INFO
# Provides: redis_6379
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Redis data structure server
# Description: Redis data structure server. See https://redis.io
### END INIT INFO
把添加的內(nèi)容添加到注釋的前兩行,空白間隔使用 tab:
#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
### BEGIN INIT INFO
# Provides: redis_6379
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Redis data structure server
# Description: Redis data structure server. See https://redis.io
### END INIT INFO
- 修改以下配置信息,使其與redis_6379.conf保持一致:
# 端口號(hào)
REDISPORT=6379
# REDIS_HOME/bin/redis-server
EXEC=/home/hadoop/apps/redis-4.0.12/bin/redis-server
# REDIS_HOME/bin/redis-cli
CLIEXEC=/home/hadoop/apps/redis-4.0.12/bin/redis-cli
# PID文件存儲(chǔ)路徑
PIDFILE=/home/hadoop/pid/redis/6379/redis_6379.pid
# 配置文件存放路徑
CONF="/home/hadoop/apps/redis-4.0.12/redis_6379.conf"
- 修改redis_6379腳本的權(quán)限為777
[hadoop@node01 utils]$ sudo chmod 777 /etc/init.d/redis_6379
- 設(shè)置redis開機(jī)自啟動(dòng)
sudo chkconfig redis_6379 on
3. 驗(yàn)證redis是否安裝成功以及是否可以開機(jī)自啟動(dòng)
# 重啟服務(wù)器
[hadoop@node01 redis-4.0.12]$ sudo reboot
# 查詢r(jià)edis服務(wù)是否啟動(dòng)
[hadoop@node01 ~]$ ps -ef | grep redis
hadoop 7093 1 0 15:59 ? 00:00:00 /home/hadoop/apps/redis-4.0.12/bin/redis-server 127.0.0.1:6379
# 進(jìn)行一組簡(jiǎn)單的操作
[hadoop@node01 ~]$ redis-cli
127.0.0.1:6379> set name tom
OK
127.0.0.1:6379> get name
"tom"
127.0.0.1:6379>
redis-4.0.12單節(jié)點(diǎn)安裝成功!