查看liunx服务器有没有Redis在运行:
1、下载压缩包
官网:https://redis.io/download
右键Download按钮,选择复制链接。然后通过wget命令下载,下载到/usr/local下面:
# cd /usr/local
wget https://download.redis.io/releases/redis-6.0.10.tar.gz
2、下载完成后需要将压缩文件解压,输入以下命令解压到当前目录并且更改名称
# tar -zvxf redis-6.0.10.tar.gz
# mv redis-6.0.10 redis
3、安装依赖包
3.1、gcc安装
安装redis需要将redis的源码进行编译,编译依赖gcc环境,所以需要安装gcc,指令:
yum install gcc-c++
4、安装redis
4.1进入解压出来的目录里面:
# cd redis
4.2 执行make命令,make 是用来编译的,它从Makefile中读取指令,然后编译。
make
如果出现错误:
错误原因是gcc版本的问题,由于我使用的redis6.0版本的。查看gcc版本,如下所示:
1 [root@master redis-6.0.10]# gcc -v
2 使用内建 specs。
3 COLLECT_GCC=gcc
4 COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
5 目标:x86_64-redhat-linux
6 配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
7 线程模型:posix
8 gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
9 [root@master redis-6.0.10]#
10 [root@master redis-6.0.10]#
解决办法,将gcc升级到 5.3及以上版本,如下所示:
1 yum -y install centos-release-scl
2 yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
3 scl enable devtoolset-9 bash
注意:scl命令启用只是临时的,推出xshell或者重启虚拟机就会恢复到原来的gcc版本。如果要长期生效的话,执行如下(这边不建议永久生效):
# echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
好了之后在重现make
编译下
4.3 执行make install命令。make install是用来安装的
make install
执行结果如下图:
5、修改配置文件
vi /usr/local/redis/redis.conf
#主要修改的内容
port 6379 #端口
5.1启动redis
输入命令:redis-server
这种启动方式是临时启动的,只要这个界面关闭或者Ctrl+c退出,那么Redis服务就关闭了,这就导致要在开一个界面输入启动客户端的命令。(因此要将服务加到开机启动)
5.2 启动客户端
输入命令:redis-cli
注意:
重启电脑之后上次输入的数据就没了,但是关闭Redis服务却还有之前的数据,重启服务器才会没有,因此要做数据持久化,持久化分为RDB和AOF
RDB持久化:
手动生成数据库备份文档dump.rdb
在客户端输入命令:save
redis 127.0.0.1:6379> SAVE
该命令将在 redis 安装目录中创建dump.rdb文件。
如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。获取 redis 目录可以使用 CONFIG 命令,如下所示:
redis 127.0.0.1:6379> CONFIG GET dir
1) "dir"
2) "/usr/local/redis/bin"
手动触发Redis进行RDB持久化的命令有两种:
1、save
该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止。
显然该命令对于内存比较大的实例会造成长时间阻塞,这是致命的缺陷,为了解决此问题,Redis提供了第二种方式。
2、bgsave
执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。具体操作是Redis进程执行fork操作创建子进程,RDB持久化过程由子进程负责,完成后自动结束。阻塞只发生在fork阶段,一般时间很短。
基本上 Redis 内部所有的RDB操作都是采用 bgsave 命令。
ps:执行执行 flushall 命令,也会产生dump.rdb文件,但里面是空的.
6、下面需要设置redis服务器开机自动启动:
加好之后,这个自动启动和手动redis-server启动的就不是同一个了,至少安装目录不是同一个,导致数据就不一样,可以通过命令:CONFIG GET dir 查看安装目录,毕竟生成的RDB备份文件就是这个目录下的
要先让redis服务自动启动的话,首先需要在/etc/init.d目录下创建redis的启动脚本。这边的etc文件夹是跟usr同级的目录
6.1、将redis安装目录下的utils/redis_init_script复制到/etc/init.d目录下,命名为redis
# cd /usr/local/redis/utils
# cp redis_init_script /etc/init.d/redis
编辑刚刚复制的改名的redis
启动文件,修改其中指定的pid和配置文件。
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
修改为
PIDFILE=/var/redis/run/redis_${REDISPORT}.pid
CONF="/etc/redis/redis.conf"
首先创建存放pid的目录为/var/redis/run
[root@localhost /]# cd var
[root@localhost var]# mkdir redis
[root@localhost var]# cd redis
[root@localhost redis]# mkdir run
接下来,我们需要把配置文件redis.conf
复制一份到/etc/redis
这个目录下面去
[root@localhost /]# cd etc
[root@localhost etc]# mkdir redis
[root@localhost etc]# cd redis
[root@localhost redis]# cp /usr/local/redis/redis.conf ./
修改配置文件中的pid为前面配置的pid。
pidfile /var/run/redis.pid
修改为
pidfile /var/redis/run/redis.pid
至此为止,我们已经可以通过service redis start/stop
来启动和关闭redis服务了。
最后只需要通过chkconfig redis on命令来设置开机启动即可。
[root@localhost ~]# chkconfig redis on
redis 服务不支持 chkconfig
[root@localhost ~]# vi /etc/init.d/redis
[root@localhost ~]# chkconfig redis on
[root@localhost ~]#
如果提示redis 服务不支持 chkconfig的话,只需要在/etc/init.d/redis这个启动脚本的第二行后面加上下面的内容即可。
# chkconfig:2345 90 10
#
# description:Redis is a persistent key-value database
我重启服务器之后,Redis服务自动