不知道为何,使用centos7安装redis4.0以上版本的yum源一直找不到,官网也没有,具体原因没有去调查,所以这里使用源码安装做个记录
1.由于Redis是用C语言编写,所以编译时需要gcc,这一步就不演示了
yum install gcc-c++
2.官网下载redis5.0包
http://download.redis.io/releases/
这里选择5.0.3版本,自己想办法下载下来。本人放在/usr/local/下面
3.解压
4.编译以及安装
cd redis-5.0.3 make && make PREFIX=/usr/local/redis install
查看是否安装成功(一般安装gcc后没啥依赖包,基本不会报错),但是为了保险,还是验证一下。
此时redis的目录是这样的
- redis-benchmark redis性能测试工具
- redis-check-aof AOF文件修复工具
- redis-check-rdb RDB文件修复工具
- redis-cli redis命令行客户端
- redis.conf redis配置文件
- redis-sentinal redis集群管理工具
- redis-server redis服务进程
将redis-cli软连接到/bin下面,方便使用(有人也喜欢将该路径放入环境变量,都可以)
方式一: ln -s /usr/local/redis/bin/redis-cli /bin
方式二:vim /etc/profile # 最后面添加 export PATH=$PATH:/usr/local/redis/bin
5.修改配置文件
#创建配置文件目录,规范化管理 mkdir /usr/local/redis/etc # 复制配置文件到/usr/local/redis/etc目录下 cp /usr/local/redis-5.0.3/redis.conf /usr/local/redis/etc/ # 打开配置文件 cd /usr/local/redis/etc vim redis.conf # 修改后台启动, 默认为daemonize no, 修改为daemonize yes daemonize yes # 设置密码, 默认被注释, 取消注释修改为自定义密码(我的是123456) requirepass 123456 # 监听ip, 允许访问的ip, 默认为127.0.0.1, 修改为0.0.0.0(允许所有服务器ip访问)或者注释掉 bind 0.0.0.0 #下面的为可选,测试环境可以不调整 # 客户端闲置多长时间后断开连接, 默认为0关闭此功能 timeout 0 # 指定监听端口, 默认为6379, 此处我保持默认 port 6379 # 是否开启AOF持久化,默认为no appendonly yes # 修改AOF及RBD存放路径, 默认为./, 修改为/usr/local/redis/data dir /usr/local/redis/data # 修改log存放路径, 默认为"", 修改为"/usr/local/redis/data/redis_6379.log" logfile "/usr/local/redis/data/redis_6379.log"
6.启动Redis
这里有个小坑,不指定配置文件启动,远程连接不上。
# 启动 /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf # 查看Redis是否启动 ps -ef | grep redis # CentOS本地查看 redis-cli # 输入配置密码即可 auth 123456 # 远程则自行使用工具查看
7.添加为系统服务
a)使用system(推荐)
centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。
Systemd服务文件以.service结尾,比如现在要建立redis为开机启动,如果用yum install命令安装的,yum命令会自动创建redis.service文件,直接用命令systemcel enable
redis.service设置开机启动即可
# 新建文件 vim usr/lib/systemd/system/redis.service 或者/etc//systemd/system/redis.service # 添加内容 [Unit] Description=redis.server After=network.target [Service] Type=forking ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf ExecRepload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
注意:ExecStart配置成自己的路径
配置描述:
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
重载系统服务:systemctl daemon-reload
管理命令
systemctl start redis.service #启动redis服务 systemctl enable redis.service #设置开机自启动 systemctl disable redis.service #停止开机自启动 systemctl status redis.service #查看服务当前状态 systemctl restart redis.service #重新启动服务 systemctl list-units --type=service #查看所有已启动的服务
b)脚本方式(不推荐,可跳过)
vim /etc/init.d/redis 编写脚本 (输入下面的代码)
# chkconfig: 2345 10 90 # description: Start and Stop redis PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT=6379 #实际环境而定 EXEC=/usr/local/redis/bin/redis-server #实际环境而定 REDIS_CLI=/usr/local/redis/bin/redis-cli #实际环境而定 PIDFILE=/var/run/redis.pid CONF="/usr/local/redis/etc/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 if [ "$?"="0" ] then echo "Redis is running..." fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE exists, process is not running." else PID=$(cat $PIDFILE) echo "Stopping..." $REDIS_CLI -p $REDISPORT SHUTDOWN while [ -x $PIDFILE ] do echo "Waiting for Redis to shutdown..." sleep 1 done echo "Redis stopped" fi ;; restart|force-reload) ${0} stop ${0} start ;; *) echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2 exit 1 esac
配置开机启动
chmod 755 /etc/init.d/redis #设置文件redis的权限,让Linux可以执行 chkconfig redis on #开启服务自启动 chkconfig --list #查看所有注册的脚本文件 service redis start #启动 service redis stop #关闭redis
标签:bin,service,redis5,redis,Centos7,etc,自启,usr,local From: https://www.cnblogs.com/lizexiong/p/16930910.html