Redis是一个C实现的基于内存、可持久化的键值对数据库,在分布式服务中常作为缓存服务。本篇将介绍在CentOS下如何从零开始安装到配置启动服务。
一、安装
Redis的安装推荐下载源码编译安装。
进入下载的目录,使用wget下载
1 | [root@localhost ~]# cd /usr/local/src/ |
解压并移动至/usr/local/目录下
1 | [root@localhost src]# tar zxvf redis-4.0.10.tar.gz |
进入redis目录,使用make命令编译
1 | [root@localhost src]# cd /usr/local/redis |
编译完成后在src目录下会生成两个文件redis-server与redis-cli。
然后进入src目录,执行make install,这时会把这些可执行程序拷贝到/usr/local/bin目录下,由于/usr/local/bin是在系统的环境变量$PATH下定义的,因此终端在任意位置就可以执行redis-server和redis-cli了。
1 | [root@localhost redis]# cd src |
经过以上步骤redis已经安装完毕。
redis文件意义作用
文件名 | 作用 |
---|---|
redis-server | redis服务,启用redis服务 |
redis-cli | redis客户端,连接redis服务,进行CURD等操作 |
redis-sentinel | redis实例的监控管理、通知和实例失效备援服务 |
redis-benchmark | 性能测试工具 |
redis-check-aof | AOF方式持久化,使用此文件修复 |
redis-check-rdb | RDB方式持久化,使用此文件修复 |
使用启动redis-server,并使用redis-cli连接操作
1 | [root@localhost ~]# redis-server |
此时redis服务已经正常工作,如果redis服务未启动,运行redis-cli时会报Could not connect to Redis at 127.0.0.1:6379: Connection refused的错误。
二、 配置开机自动启动
如果需要在系统启动时自动启动redis,需要将redis服务作为守护进程(daemon)来运行。此时需要修改redis配置文件redis.conf。文件位置在/usr/local/redis/redis.conf
1 | [root@localhost ~]# vim /usr/local/redis/redis.conf |
其中两个重要的参数daemonize默认值是false,pidfile默认值是pidfile /var/run/redis_6379.pid
搜索找到daemonize 把后面的值no改为yes
daemonize介绍
daemonize为守护进程,默认是no。
daemonize 设置yes或者no区别
daemonize:yes:redis采用的是单进程多线程的模式。当redis.conf中选项daemonize设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程,服务运行中该文件(pidfile)就存在,服务一旦停止该文件就自动删除,因而可以用来判断redis是否正在运行。
daemonize:no: 当daemonize选项设置成no时,当前界面将进入redis的命令行界面,exit强制退出或者关闭连接工具(putty,xshell等)都会导致redis进程退出。
编辑后保存退出。
生产环境中推荐使用启动脚本方式启动redis服务,接下来需要配置一个管理启动、关闭、重启的一个脚本。redis源码里已经提供了一个初始化脚本,位置在/usr/local/redis/utils/redis_init_script。
大致查看一下脚本内容
1 | #redis服务器监听的端口 |
根据启动脚本,将修改好的配置文件复制到指定目录下,另外看到这里conf的路径,我们需要把redis目录下的redis.conf文件拷贝到/etc/redis/6379.conf
1 | [root@localhost ~]# mkdir /etc/redis |
接着将启动脚本复制到/etc/init.d目录下,将启动脚本命名为redisd(通常都以d结尾表示是后台自启动服务)。
1 | [root@localhost ~]# cp /usr/local/redis/utils/redis_init_script /etc/init.d/redisd |
在/etc/init.d下的脚本基本都是在系统自动启动的服务,现在设置redis为开机自启动
1 | [root@localhost zhxilin]# chkconfig redisd on |
执行chkconfig redisd on 可能会报错误: service redisd does not support chkconfig
解决方法:在启动脚本开头添加如下两行注释修改其运行级别
1 |
|
保存完重新拷贝到/etc/init.d/redisd,再次运行chkconfig redisd on。
配置后,可以执行以下命令测试redis服务是否设置成功:
1 | #设置为开机自启动服务器 |
等价于
1 | #启动redis服务 |