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