CentOS7 安装Redis6.0.10

1、安装Redis6.0.10需要高版本gcc,所以先临时升级gcc

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

#临时将gcc设置为高版本,会话结束就变回低版本gcc
scl enable devtoolset-9 bash

2、安装Redis6.0.10

tar zxvf redis-6.0.10.tar.gz
mv redis-6.0.10 redis
cd redis
make
make install

3、修改配置文件

vi /usr/local/redis/redis.conf 

#主要修改的内容
port 18890    #端口
daemonize yes    #后台运行
pidfile /var/run/redis.pid    #pid文件位置,和启动脚本保持一至就行

4、启动脚本

vi /etc/rc.d/init.d/redis
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
source /etc/init.d/functions
REDISPORT=18890
EXEC=/usr/local/redis/src/redis-server
CLIEXEC=/usr/local/redis/src/redis-cli
 
PIDFILE=/var/run/redis.pid
CONF=/usr/local/redis/redis.conf
BIND_IP='0.0.0.0'
 
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 does not exist, process is not running"
    else
        PID=$(cat $PIDFILE)
        echo "Stopping ..."       
        $CLIEXEC -h $BIND_IP  -p $REDISPORT  SHUTDOWN 
        sleep 1
        while [ -x /proc/${PID} ]
        do
            echo "Waiting for Redis to shutdown ..."
            sleep 1
        done
            echo "Redis stopped"
    fi
}
 
restart(){
    stop
    start 
}

status(){ 
    ps -ef|grep redis-server|grep -v grep >/dev/null 2>&1 
    if [ $? -eq 0 ];then 
        echo "redis server is running" 
    else
        echo "redis server is stopped" 
    fi
} 
 
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;         
    restart)
        restart
        ;;         
    status)
        status
        ;;     
    *)
     
     echo "Usage: redis-server {start|stop|status|start}" >&2 
     exit 1 
esac

脚本加权限

chmod +x /etc/rc.d/init.d/redis

启动

service redis start

持久化说明:

1、RDB 方式

#只要满足以下条件中的一个,BGSAVE命令就会被执行
#服务器在 900 秒之内,对数据库进行了至少 1 次修改了
#服务器在 300 秒之内,对数据库进行了至少 10 次修改
#服务器在 60 秒之内,对数据库进行了至少 10000 次修改
#如果不想RDB持久化就写 save ""
save 900 1 save 300 10 save 60 10000 #bgsave发生错误时是否停止写入,一般为yes stop-writes-on-bgsave-error yes #持久化时是否使用LZF压缩字符串对象? rdbcompression yes #是否对rdb文件进行校验和检验,通常为yes rdbchecksum yes # RDB持久化文件名 dbfilename dump.rdb #持久化文件存储目录 dir ./

2、AOF方式

#开启AOF持久化方式
appendonly yes
 
#AOF持久化文件名 
appendfilename "appendonly.aof" 
#每秒把缓冲区的数据fsync到磁盘 
appendfsync everysec 
# appendfsync no 
#是否在执行重写时不同步数据到AOF文件 
no-appendfsync-on-rewrite no 
 
# 触发AOF文件执行重写的增长率 
auto-aof-rewrite-percentage 100 
#触发AOF文件执行重写的最小size 
auto-aof-rewrite-min-size 64mb 
 
#redis在恢复时,会忽略最后一条可能存在问题的指令 
aof-load-truncated yes 
 
#是否打开混合开关 
aof-use-rdb-preamble yes
  • 如果只是需要保证数据的完整性,保护数据不会丢失,那么优先使用 AOF 方式。
  • 如果是处理大规模的数据恢复,追求更高更快的效率的话,优先使用 RDB 方式。

原文地址:https://www.cnblogs.com/kgdxpr/p/14328680.html