- 安装redis6.2.6
一件安装脚本
#!/bin/bash
# 修改系统参数
echo 'net.core.somaxconn = 1024' >>/etc/sysctl.conf
echo 'vm.overcommit_memory = 1' >>/etc/sysctl.conf
#以上两个系统参数不调整,在redis启动时将会有两条WARNING提示:
#WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
# backlog参数控制的是三次握手的时候server端收到client ack确认号之后的队列值,即全连接队列
#WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.
#0:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
#1:表示内核允许分配所有的物理内存,而不管当前的内存状态如何
#2: 表示内核允许分配超过所有物理内存和交换空间总和的内存
sysctl -p
#安装redis
wget http://download.redis.io/releases/redis-6.2.6.tar.gz
tar -zxf redis-6.2.6.tar.gz
cd redis-6.2.6
make -j8
make install
- 配置并以集群模式启动redis
#主要配置文件详解
# 监听地址,可以空格隔开 写多个IP,如果写0.0.0.0代表监听所有网卡IP
bind 0.0.0.0
#redis3.2版本后加入的特性,选'yes'时在没有设置IP和密码的时候,redis只允许访问127.0.0.1:6379,建议设置为no。
protected-mode no
# 监听端口
port 6379
# ctp半连接长度配置tcp-backlog。在进行TCP/IP连接时,内核会维护两个队列
# syns queue 用于保存已收到sync但没有收到ack的TCP半连接请求。由/proc/sys/net/ipv4/tcp_max_syn_backlog指定,我的系统(redhat7.9)1024
# accept queue,用于保存已经建立的连接,也就是全连接。由/proc/sys/net/core/somaxconn指定。
# 三次握手的时候server端接收到client的ack确认号之后的队列值,即全队列长度
tcp-backlog 511
#服务端与客户端超时无操作关闭连接。默认为0 永不关闭
timeout 0
# tcp会话保持时间,每300秒向连接空闲的客户端发送一次ack请求,已检查客户端是否存活,对于无响应的客户端将会关闭连接,设置为0则不会进行检测
tcp-keepalive 300
#默认redis-server不作为守护进程后台运行,需设置为yes作为守护进程后台运行,它会写一个 pid 到 /path/to/redis.pid 文件
daemonize yes
#redis启动后会把pid写入到pidfile指定的文件中
pidfile /var/run/redis_6379.pid
#loglevel 用于设置日志打印级别,默认notice;
# debug: 打印所有信息,包括debug信息
# verbose:打印除debug日志之外的所有日志
# notice:打印除了debug和verbose级别的所有日志。
#warning:仅打印非常重要的信息
loglevel notice
logfile "/data/redis/redis_6379.log"
#指定数据的数量,默认16个库,编号从0开始
databases 16
#启动是否显示logo
always-show-logo no
#配置默认用户default的密码
requirepass yourpass
#设置可以同时连接客户端的最大数量。默认该项设置为 10000 个客户端。达到限制值后的连接会被拒绝并会返回错误信息。
maxclients 10000
#指定Redis最大内存限制。达到内存限制时,Redis将尝试删除已到期或即将到期的Key。
#单位为bytes字节,0为不限制,建议设为物理内存一半,8G内存的计算方式8(G)*1024(MB)1024(KB)*1024(Kbyte),需要注意的是缓冲区是不计算在maxmemory内。
maxmemory <bytes>
#配置达到最大内存限制后,Redis进行何种操作。默认noeviction
# volatile-lru 只对设置了过期时间的Key进行淘汰,淘汰算法近似的LRU。
# allkeys-lru 对所有Key进行淘汰,LRU。
# volatile-random 只对设置了过期时间的Key进行淘汰,淘汰算法为随机淘汰。
# allkeys-random 对所有Key进行淘汰,随机淘汰。
# volatile-ttl 只对设置了过期时间的Key进行淘汰,删除即将过期的即ttl最小的。
# noeviction 永不删除key,达到最大内存再进行数据装入时会返回错误。
maxmemory-policy noeviction
#yes时因空间满等原因快照无法保存出错时,禁止redis写入操作,建议为no
stop-writes-on-bgsave-error no
#持久化到RDB文件时,是否压缩,"yes"为压缩,"no"则反之
rdbcompression yes
#是否对备份文件开启RC64校验,默认是开启
rdbchecksum yes
#快照文件名
dbfilename dump.rdb
#数据文件保存路径
dir "/data/redis"
#是否开启AOF日志记录,默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了,但是redis如果中途宕机,会导致可能有几分钟的数据丢失(取决于dumpd数据的间隔时间),根据save来策略进行持久化,Append Only File是另一种持久化方式,可以提供更好的持久化特性,Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。默认不启用此功能
appendonly no
#lua脚本的最大执行时间,单位为毫秒
lua-time-limit 5000
# redis cluster 集群配置
# 是否开启集群,只有以集群模式启动的Redis实例才能作为集群的节点
cluster-enabled yes
##由node节点自动生成的集群配置文件名称,只需要配好位置即可
cluster-config-file “/data/redis/nodes-6379.conf"
#集群中node节点连接超时时间,超过此时间,会踢出集群
cluster-node-timeout 15000
#在执行故障转移的时候可能有些节点和master断开一段时间数据比较旧,这些节点就不适用于选举为master,超过这个时间的就不会被进行故障转移,计算公式:(node-timeout * replica-validity-factor) + repl-ping-replica-period
cluster-replica-validity-factor 10
#个主节点至少拥有一个正常工作的从节点,即如果主节点的slave节点故障后会将多余的从节点分配到当前主节点成为其新的从节点。
cluster-migration-barrier 1
#集群请求槽位全部覆盖,如果一个主库宕机且没有备库就会出现集群槽位不全,那么yes情况下redis集群槽位验证不全就不再对外提供服务,而no则可以继续使用但是会出现查询数据查不到的情况(因为有数据丢失)。建议为no
cluster-require-full-coverage no
#如果为yes,此选项阻止在主服务器发生故障时尝试对其主服务器进行故障转移。 但是,主服务器仍然可以执行手动强制故障转移,一般为no
cluster-replica-no-failover no
#Slow log 是 Redis 用来记录超过指定执行时间的日志系统, 执行时间不包括与客户端交谈,发送回复等I/O操作,而是实际执行命令所需的时间(在该阶段线程被阻塞并且不能同时为其它请求提供服务)slow log 保存在内存里面,读写速度非常快,因此可放心地使用,不必担心因为开启 slow log 而影响 Redis 的速度
#以微秒为单位的慢日志记录,为负数会禁用慢日志,为0会记录每个命令操作。
slowlog-log-slower-than 10000
#最多记录多少条慢日志的保存队列长度,达到此长度后,记录新命令会将最旧的命令从命令队列中删除,以此滚动删除
slowlog-max-len 128
标签:no,Redis,redis,笔记,内存,整理,yes,节点
From: https://www.cnblogs.com/baixisuozai/p/18498920