在CentOS7上从源码编译安装redis,并做成服务程序
1.安装编译的依赖环境
# 安装pcre开发包: yum install -y pcre-devel # 安装ssl功能需要openssl库 yum -y install openssl-devel # 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl
2.下载并安装
#命令行下载redis源码包 wget http://download.redis.io/releases/redis-2.8.17.tar.gz #解压到当前目录中 tar xzf redis-2.8.17.tar.gz # 切换到解压的目录中 cd redis-2.8.17 # 编译源代码文件 make # 创建redis安装目录 mkdir /usr/local/redis # 安装redis到刚才的新建目录中 #安装成功后/usr/local/redis目录中有多出一个bin子目录,里面会有 #redis-benchmark redis-check-aof redis-check-dump #redis-cli redis-server 这5个可执行文件 make --PREFIX=/usr/local/redis install
3.修改配置文件
vi redis.conf #修改一下配置 # 修改程序运行方式(在配置文件的第37行),将redis以守护进程的方式运行, # no表示不以守护进程的方式运行(会占用一个终端) , daemonize yes # 设置密码(在配置文件中的348行),取消注释, requirepass <密码> #保存退出 # 将此配置文件复制到系统配置文件目录上,方便随机启动读取 # 创建容纳redis配置文件的目录 mkdir /etc/redis # 复制并重命名配置文件为”6379.conf“, cp redis.conf /etc/redis/6379.conf
4.注册redis服务
#复制redis的启动脚本redis_init_script到/etc/rc.d/init.d/,并命名为redisd cp utils/redis_init_script /etc/rc.d/init.d/redisd #修改脚本文件 vi /etc/rc.d/init.d/redisd
在redisd文件的第二行加入下面这一行内容(这里带#的注释是有意义的),并保存退出
#chkconfig: 2345 80 90
#注册服务 chkconfig --add redisd # 系统可能会提示使用'/sbin/chconfig',此时要建立一个软链接 ln -s /etc/rc.d/init.d/redisd /sbin/redisd # 再执行以下命令,应该不会再报错了 /sbin/chkconfig --add redisd
5.设置redis开机自启,启动redis服务
这是/etc/init.d/redisd启动脚本的开头部分内容截图
- 建立redis可执行文件的链接关系
#刚才将"redis.conf"重命名为“6379.conf”的原因就是shell命令 #“ CONF="/etc/redis/${REDISPORT}.conf" ”将在脚本执行是读取以端口号命名 # 的conf文件,而这里端口的环境变量REDISPORT就是6379 。 #shell命令‘EXEC=/usr/local/bin/redis-server‘和 # ’CLIEXEC=/usr/local/bin/redis-cli‘将执行/usr/local/bin/目录下的 #redis-server、redis-cli两个可执行文件,但我是将redis自定义安装在/usr/local/redis/bin #目录里的,因此要在/usr/local/bin/目录下建立redis执行文件的软链接 ln -s /usr/local/redis/bin/redis-server /usr/local/bin/redis-server ln -s /usr/local/redis/bin/redis-cli /usr/local/bin/redis-cli # 建立软链接的时候,一定要写全路径,不要写相对路径,否则在执行文件会提示“too many link”
- 设置开机自启
systemctl enable redisd
- 启动redis
systemctl start redisd
- 防火墙的redis端口开放
#开放6379端口,方便外部远程登录redis firewall-cmd --permanent --add-port=6379/tcp #重新加载防火墙,使开放的端口生效 firewall-cmd --reload