1. Redis安装步骤
1.1 安装编译工具及库文件
(1). 安装编辑工具及库文件
yum -y install make gcc gcc-c++ libstdc++-devel
(2). 升级gcc
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
(3). 设置gcc永久生效
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
1.2 下载Redis源码并编译
yum -y install gcc gcc-c++ libstdc++-devel #安装redis编译所需的库文件
mkdir /usr/redis #创建存储redis的目录
cd /usr/redis #进入reids目录
wget http://download.redis.io/releases/redis-6.0.8.tar.gz #下载redis-6.0.8源码
tar zxvf redis-6.0.8.tar.gz #解压
cd redis-6.0.8
make #编译
1.3 启动Redis服务
cd /usr/redis/redis-6.0.8/src #进入redis的src目录
./redis-server ../redis.conf #启动redis服务
2. Redis的配置文件详解(redis.conf)
redis.conf配置文件在/usr/redis/redis-6.0.8目录下。
#############################network############################
#第69行,redis监听的地址
bind 127.0.0.1
#第88行,安全模式,是否禁止外网访问redis,yes表示启用,只能通过本地访问
protected-mode yes
#第92行,监控的端口
port 6379
#第101行,指定tcp-backlog长度。tcp-backlog是一个等待队列。
#当大量请求需要redis处理时,需要等待的请求队里会通过backlog来缓存。
#backlog的数量决定可以缓存的队列数。
tcp-backlog 511
#第109行,指定使用sock文件通信以及sock文件文职,如果服务端和客户端在同一台主机上,建议打开。
#sock方式通信可以直接在内存中交换,不经过TCP/IP协议进行封装、拆封
#unixsocket /tmp/redis.soc
#第110行,定义sock文件的权限
# unixsocketperm 700
#第113行,当客户端空闲多少秒后关闭连接,如果指定0,表示关闭该功能。
timeout 0
#第130行,维持长链接的时间,单位秒
tcp-keepalive 300
############################GENERAL#########################
#第225行,是否作为后台守护进程运行,一般设置为yes
daemonize no
#第236行,是由upstart还是systemd接管redis进程。默认无监督互动,不需要修改。
supervised no
#第247行,pid文件地址
pidfile /var/run/redis_6379.pid
#第255行,日志级别
# debug: 会打印出很多信息,适用于开发和测试阶段
# verbose(冗长的):包含很多不太有用的信息,但比debug要清爽一些
# notice: 适用于生产模式
# warning: 警告信息
loglevel notice
#第260行,日志文件位置
logfile /var/log/redis/redis.log
#第275行,设置数据库的数量,可以使用select命令在连接时选择一个
databases 16
#第283行,是否显示logo
always-show-logo yes
###################### SNAPSHOTTING ################################
#第307到220行,快照存储策略,存到磁盘的持久化策略
#第一个数字是单位时间,单位为秒;第二个数字是键值发生变化的次数
#例如第一个,900秒内至少发生1次键值变化,则做一次快照(持久化)
#第二个就是,300秒内至少发生10次键值变化,则做一次快照(持久化)
#所有条件是并列关系,根据不同的键值变化选择使用规则
save 900 1
save 300 10
save 60 10000
#第324行,在进行快照持久化时,一旦发生错误是否停止,默认yes即可
stop-writes-on-bgsave-error yes
#第xx行,指定RDB文件是否压缩,yes表示压缩,会消耗CPU资源
rdbcompression yes
#第339行,是否对RDB文件做校验检测
#此项定义在redis启动时加载RDB文件是否对文件进行校验码检查
#在redis生成RDB文件时会生成校验信息,在redis再次启动时或装载RDB时,是否检测校验信息。
#如果检测的话,会消耗时间,导致redis启动慢,但是能够判断RDB文件是否有问题。
rdbchecksum yes
#第342行,RDB文件名称
dbfilename dump.rdb
#第355行,rdb文件是否删除同步锁
rdb-del-sync-files no
#第263行,RDB文件存放的路径
dir /var/lib/redis
######################## REPLICATION ############################
#第xx行,定义Mster服务器的IP和端口,主从复制的配置信息
# replicaof <masterip> <masterport>
#第xx行,定义Master服务器的密码,主从复制的配置信息
# masterauth <master-password>
#第xx行,当从端在主从复制过程中与主端断开连接,yes表示继续提供服务,
#即使数据不是最新的,no表示对请求返回错误信息
replica-serve-stale-data yes
#第xx行,从端只读
replica-read-only yes
#第367行,diskless(无磁盘)方式进行数据传递之前会有一个时间的延迟,
#以便从端能够进行到待传送的目标队列中,默认5秒
repl-diskless-sync-delay 5
#第373行,从端向主端发送ping的时间间隔,默认10秒
# repl-ping-replica-period 10
#第385行,设置超时时间
# repl-timeout 60
#第400行,是否启用TCP_NODELAY。
#如果启用则会使用少量的TCP包和带宽去进行数据传输到从端,速度较慢;
# 如果不启用则使用较多的带宽进行数据传输,速度较快。
repl-disable-tcp-nodelay no
#第413行,设置backlog的大小。backlog是一个缓冲区,在从端失联时存放要同步到从端的数据。
#因此当从端重连时,一般是不需要完全同步的。backlog越大,从端可以失联的时间就越长(相对来说)
# repl-backlog-size 1mb
#第426行,一段时间后,从端还没有连上master,那么backlog(缓冲区)的内存将被释放。
#0表示永不释放,默认3600秒
# repl-backlog-ttl 3600
#第441行,从端的优先级设置,数字越小优先级越高。主端故障会根据优先级高的从端来进行恢复。
#如果设置的是0,那么该从端永远不会被选中
replica-priority 100
#第457到458行,当主端的可用从端小于3个或网路延迟岛屿10秒时,
#主端拒绝接收用户的写请求。
# min-replicas-to-write 3
# min-replicas-max-lag 10
#第507行,指定认证密码,默认不启动
# requirepass foobared
#第539行,同时连接redis的最大数量
# maxclients 10000