Redis简述
Redis(Remote Dictionary Server )
,即远程字典服务,是一个开源的使用ANSI C
语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value
数据库,并提供多种语言的API
。
Redis
是一个key-value
存储系统
Redis
是一个高性能的key-value
数据库
Redis
支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。
官网:https://redis.io/
1. 使用wget
命令下载redis
安装包
1.1 wget
命令简介
wget
是Linux
中下载文件的工具,是Linux下开发的开源的软件
wget
支持通过HTTP
、HTTPS
、FTP
三个最常见的TCP/IP
协议 下载,并可以使用HTTP
代理
1.2 下载redis-6.0.10
压缩包
#wget命令下载redis-6.0.10.tar.gz
wget https://download.redis.io/releases/redis-6.0.10.tar.gz
2. 使用tar
命令解压redis
安装包
#解压redis-6.0.10.tar.gz
tar -zvxf redis-6.0.10.tar.gz
3. 使用make
编译安装redis
3.1 编译
#进入redis-6.0.10目录
cd redis-6.0.10
#编译redis
make
3.2 编译报错(若未出现该问题,则跳到3.4)
server.c:5404:19: error: ‘struct redisServer’ has no member named ‘sentinel_mode’
3.3 解决方案,升级gcc
3.3.1 yum
安装scl
源
Centos7 gcc
版本默认4.8.3
,为了软件的稳定和版本支持,yum 上版本也是4.8.3,所以无法使用yum进行软件更新,所以使用scl
yum -y install centos-release-scl
3.3.2 安装gcc、g++、binutils
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
3.3.3 使高版本 gcc
和 g++
9 生效
scl enable devtoolset-9 bash
3.3.4 可使用gcc -v
查看版本
#查看gcc版本
gcc -v
3.4 使用make
重新编译
#编译redis
make
3.5 进入src
目录,使用make install
安装
建议使用安装到指定目录,更易于操作
make install PREFIX=/usr/local/redis
#进入src目录
cd src
#使用make install 安装
make install
###若想安装到指定的目录则添加参数PREFIX
make install PREFIX=/usr/local/redis
3.6 使用make install
安装成功后,在src目录下会多出几个高亮显示的文件
3.7 使用make install
添加参数PREFIX
安装到指定目录
安装成功后,进入安装目录会有
bin
目录,bin
目录下就是对应的文件
#安装到/usr/local/redis目录
make install PREFIX=/usr/local/redis
#进入到/usr/local/redis目录
cd /usr/local/redis
#ll命令查看
#进入bin目录
cd bin
3.8 关于安装生成的文件介绍
文件名称 | 描述信息 |
---|---|
redis-benchmark | Redis 性能压测工具 |
redis-check-aof | 修复有问题的AOF 文件 |
redis-check-rdb | 修复有问题的dump.rdb 文件 |
redis-cli | Redis 客户端 |
redis-sentinel | Redis 哨兵模式 |
redis-server | Redis 服务端 |
4. 运行Redis
4.1 使用./
执行redis-server
文件
#使用./执行redis-server文件,启动redis
./redis-server
当出现下述页面,则证明运行成功。此启动方式是在前台使用,当停止后,该服务就关闭
4.2 Ctrl+C
停止运行
4.3 以后台运行的方式启动Redis
4.3.1 使用cp
命令,从redis
源码目录中复制redis.conf
配置文件,到 redis
的安装目录
cp /opt/redis-6.0.10/redis.conf /usr/local/redis/bin/
4.3.2 使用vim
编辑redis.conf
#编辑redis.conf配置文件
vim redis.conf
4.3.3 使用/daemonize
+回车键,找到daemonize
所在位置
4.3.4 修改daemonize no为daemonize yes
找到
daemonize no
后,按i
键进入编辑模式,将no
修改为yes
,然后按Esc
键,退出编辑模式,输入:wq
保存并退出
4.3.5 以配置文件的形式,后台运行Redis
#启动redis
./redis-server redis.conf
#使用netstat -ntl查看redis的端口6379是否开启
netstat -ntl
4.4 Redis daemonize
简述
4.4.1 daemonize
介绍
redis.conf
配置文件中daemonize
守护线程,默认为no
daemonize
用来指定redis
是否要用守护线程的方式启动
4.4.2 daemonize
设置为yes
daemonize yes
:redis
采用的是单进程多线程的模式。
当redis.con
f配置文件中,daemonize
值为yes
时,代表开启守护进程模式。
在该模式下,redis会在后台运行,将进程pid写入到配置文件中pidfile
设置的文件中。此时redis将一直运行,除非手动kill该进程
4.4.3 daemonize
设置为no
当
daemonize
值设置为no
时,当前界面将进入redis
的命令行界面,exit强制退出,或者关闭远程连接工具(Xshell
、MobaXterm
等)都会导致redis
进程退出
5. 设置Redis开机自启
5.1 编辑/etc/init.d/redis
文件
vim /etc/init.d/redis
# chkconfig: 2345 10 90
#redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。
# description: Start and Stop redis
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
export PATH
REDISPORT=6379 #端口号
EXEC=/usr/local/redis/bin/redis-server #redis-server启动脚本的位置
REDIS_CLI=/usr/local/redis/bin/redis-cli #redis-cli客户端启动脚本的位置
PIDFILE=/var/run/redis_6379.pid #在redis.conf配置文件中可查到
CONF="/usr/local/redis/bin/redis.conf" #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
sleep 2
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
5.2 设置redis
文件的可执行权限
chmod 755 redis
5.3 停止、启动redis
服务,设置开机自启
#停止redis
/etc/init.d/redis stop
#启动redis
/etc/init.d/redis start
#设置开机自启
chkconfig redis on
5.4 将脚本添加到系统服务列表,即可使用service服务形式启动、停止
5.4.1 添加到系统服务列表
chkconfig --add redis
chkconfig --list
5.4.2 使用service
启动、停止redis
服务
#停止redis服务
service redis stop
#启动redis服务
service redis start
#查看redis服务是否启动
ps -ef|grep redis