Centos 安裝redis 並配置服務
1.下載源碼包
wget http://download.redis.io/releases/redis-3.2.1.tar.gz
tar -zxvf redis-3.2.1.tar.gz -C /opt/
cd /opt/redis-3.2.1/
make PREFIX=/usr/local/redis-3.2.1 install //指定安裝的路徑,
可能報錯
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
make: *** [all] Error 2
可以改成
make MALLOC=libc PREFIX=/usr/local/redis install
ll /usr/local/redis-3.2.1/bin
2、添加服務
a)、這個是centos6 的service 命令
1、創建服務腳本
cp /opt/redis-3.0.6/utils/redis_init_script /etc/rc.d/init.d/redis
mkdir /etc/redis #創建redis目錄,是為了以后可以存放多個redis配置
cp /opt/redis-3.0.6/redis.conf /etc/redis/6379.conf
vim /etc/rc.d/init.d/redis #修改如下圈出來的地方
前面兩行注釋是:redis服務必須在運行級2,3,4,5下被啟動或關閉,啟動的優先級是90,關閉的優先級是10。
2、修改配置文件
vim /etc/redis/6379.conf
把daemnize no改為yes,意思是后台運行
3、添加服務
chkconfig --add redis #如果沒報錯的話,說明成功,可以用
chkconfig --list #查看所有服務
service redis start #啟動redis服務器
ps -ef | grep redis #查看是否啟動成功
b)、這個是centos 7 的systemctl 命令
使用systemctl 命令之前先來說說 systemctl腳本的配置
位置:/lib/systemd/system/
[Unit]
部分主要是對這個服務的說明,內容包括Description和After,
Description 用於描述服務,
After 用於描述服務類別;
[Service]
部分是服務的關鍵,是服務的一些具體運行參數的設置,
這里:
Type=forking 是后台運行的形式,
PIDFile 為存放PID的文件路徑,
ExecStart 為服務的運行命令,
ExecReload 為重啟命令,
ExecStop 為停止命令,
PrivateTmp=True 表示給服務分配獨立的臨時空間,
[Install]
部分是服務安裝的相關設置,可設置為多用戶的
1、創建redis 腳本
vim /lib/systemd/system/redis.service
2、編輯內容
[Unit]
Description=Redis
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /etc/redis/6379.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
先說明一下啊,上面的:
PIDFile 這個值要和 上面配置腳本中的 ExecStart
命令啟動 redis 的配置文件(/etc/redis/6379.conf)里的pidfile 一樣,比如下圖:
ExecStart 前面是redis啟動的服務腳本 空格 之后是啟動需要的配置文件路徑
3、重載系統服務
systemctl daemon-reload
4、啟動redis 服務
systemctl start redis.service
5、開機自啟動 (可選)
systemctl enable redis.service