bind xxx.xxx.xxx.xxx

绑定redis服务器网卡IP,默认为127.0.0.,即本地回环地址。这样的话,访问redis服务只能通过本机的客户端连接,而无法通过远程连接。如果bind选项为空的话,那会接收来自任意一个网卡的Redis请求。

注意:在集群模式时,不能指定lo网卡(127.0..1I),否则客户端重定向时会报”Connection refused”的错误。

protected-mode no

保护模式

port 6379

指定redis运行的端口,默认是6379。由于Redis是单线程模型,因此单机开多个Redis进程的时候会修改端口。

tcp-backlog 511

此参数是指:已完成三次握手的TCP连接队列,默认值511,但是Linux系统内核参数socket最大连接的值默认是128,对应文件/proc/sys/net/core/somaxconn,当系统并发量大且客户端连接缓慢时,应该将两个值进行参考设置。

建议将/proc/sys/net/core/somaxconn的值设置为2048,
如果重启生效,需要在/etc/sysctl.conf中设置:
net.core.somaxconn =
执行sysctl -p生效

timeout 0

表示客户端连接空闲N秒后,将断开连接。设置0表示禁用,永不超时

tcp-keepalive 300

客户端连接的保活时间,避免服务器阻塞。官方默认300s,设置为0时,表示永不检测

daemonize yes

redis服务是否以守护进程在后台运行。设置为no时,表示前台运行

pidfile /var/run/redis_6379.pid

redis运行的进程号保存文件位置

loglevel notice

定义日志级别。
默认值为notice,有如下4种取值:  debug(记录大量日志信息,适用于开发、测试阶段)  verbose(较多日志信息)  notice(适量日志信息,使用于生产环境)  warning(仅有部分重要、关键信息才会被记录)

logfile "/data/module/redis-5.0.0/logs/redis.log"

redis日志文件定义

databases 16

设置数据库的数目。默认的数据库是DB  ,可以在每个连接上使用select  <dbid> 命令选择一个不同的数据库,dbid 是  到'databases'-1之间的数字

注意:集群模式的时候,只能使用0号数据库

save 900 1
save 300 10
save 60 10000

redis进行rdb持久化的设置。分别表示:
900秒内有1个key发生变化,就持久化
300秒内有10个key发生变化,就持久化
60秒内有1000个key发生变化,就持久化 如果redis只是用于缓存的功能,可以不开启rdb持久化。设置为save ""即可。

stop-writes-on-bgsave-error yes

默认值为yes。当启用了RDB且最后一次后台保存数据失败,Redis是否停止接收数据。这会让用户意识到数据没有正确持久化到磁盘上,否则没有人会注意到灾难(disaster)发生了。如果Redis重启了,那么又可以重新开始接收数据了

rdbcompression yes

默认值是yes。对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能,但是存储在磁盘上的快照会比较大。

rdbchecksum no

默认值是yes。在存储快照后,我们还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能。

dbfilename dump.rdb

设置快照的文件名,默认是 dump.rdb

dir  /data/module/redis-5.0.0/data

设置快照文件的存放路径,这个配置项一定是个目录,而不能是文件名。使用上面的 dbfilename 作为保存的文件名。

masterauth 123456

设置slave节点同步数据时的认证密码

replica-serve-stale-data yes

默认值为yes。当一个 slave 与 master 失去联系,或者复制正在进行的时候,slave 可能会有两种表现:

) 如果为 yes ,slave 仍然会应答客户端请求,但返回的数据可能是过时,或者数据可能是空的在第一次同步的时候 

) 如果为 no ,在你执行除了 info he salveof 之外的其他命令时,slave 都将返回一个 "SYNC with master in progress" 的错误

slave-read-only yes

配置Redis的Slave实例是否接受写操作,即Slave是否为只读Redis。默认值为yes。

repl-diskless-sync no

主从数据复制是否使用无硬盘复制功能。默认值为no。

repl-diskless-sync-delay 5

当启用无硬盘备份,服务器等待一段时间后才会通过套接字向从站传送RDB文件,这个等待时间是可配置的。
这一点很重要,因为一旦传送开始,就不可能再为一个新到达的从节点服务。新请求的从节点则要排队等待下一次RDB传送。因此服务器等待一段 时间以期更多的从节点到达。延迟时间以秒为单位,默认为5秒。要关掉这一功能,只需将它设置为0秒,传送会立即启动。默认值为5。

repl-disable-tcp-nodelay no

同步之后是否禁用从站上的TCP_NODELAY 如果你选择yes,redis会使用较少量的TCP包和带宽向从站发送数据。但这会导致在从站增加一点数据的延时。  
Linux内核默认配置情况下最多40毫秒的延时。如果选择no,从站的数据延时不会那么多,但备份需要的带宽相对较多。默认情况下我们将潜在因素优化,但在高负载情况下或者在主从站都跳的情况下,把它切换为yes是个好主意。默认值为no。

requirepass 123456

redis启用密码认证一定要requirepass和masterauth同时设置。

如果主节点设置了requirepass登录验证,在主从切换,slave在和master做数据同步的时候首先需要发送一个ping的消息给主节点判断主节点是否存活,再监听主节点的端口是否联通,发送数据同步等都会用到master的登录密码,否则无法登录,log会出现响应的报错。
也就是说slave的masterauth和master的requirepass是对应的,所以建议redis启用密码时将各个节点的masterauth和requirepass设置为相同的密码,降低运维成本。当然设置为不同也是可以的,注意slave节点masterauth和master节点requirepass的对应关系就行。 masterauth作用:主要是针对master对应的slave节点设置的,在slave节点数据同步的时候用到。 requirepass作用:对登录权限做限制,redis每个节点的requirepass可以是独立、不同的。

rename-command

命令重命名,对于一些危险命令例如:
flushdb(清空数据库) flushall(清空所有记录) config(客户端连接后可配置服务器) keys(客户端连接后可查看所有存在的键) 例如:
可以将命令禁用:
# rename-command CONFIG "" 也可以对命令设置别名
rename-command flushall abc

maxclients 10000

设置客户端最大并发连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件。  描述符数-(redis server自身会使用一些),如果设置 maxclients为0 。表示不作限制。
当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息

maxmemory 6GB

设置redis可以使用的最大物理内存,有几种设置方式:
maxmemory ,,, maxmemory ,,,824B maxmemory 1GB 不带单位默认为B。但需要注意KB和K、MB和M、GB和G是不同的,如1K表示1000字节,而1KB则为1024字节。如果maxmemory值为0,表示不做限制。 Redis会占用非常大内存,所以通常需要关闭系统的OOM,方法为将“/proc/sys/vm/overcommit_memory”的值设置为1(通常不建议设置为2)
也可以使用命令sysctl设置,如:sysctl vm.overcommit_memory=,但注意一定要同时修改文件/etc/sysctl.conf,执行“sysctl -p”,以便得系统重启后仍然生效。 可选值:、、。
, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
, 表示内核允许分配超过所有物理内存和交换空间总和的内存

maxmemory-policy allkeys-lru

当内存使用达到最大值时,redis使用的键清除策略。有以下几种:

()默认生效的是永不过期策略(noeviction policy)
在noeviction策略中,没有键设置为过期。如果redis没有可用内存,任何写操作都会导致redis错误。 () volatile-lru 将最近较少使用的键驱逐
这些键必须通过 expire set 命令设置了超时的。当redis内存耗尽时,redis开始删除那些设置了过期时间的键,即便该键仍然有剩余时间。 ()allkeys-lru 基于键的TTL值来驱逐键。
当键值存储到redis,并通过expire设置了超时时间,当redis没有键值写入,且已接近最大内存,会根据设置的TTL依据LRU算法进行驱逐。忽略没有设置过期时间的键。 ()volatile-random 基于键上设置的过期状态随机驱逐一个键
需要O(n)时间复杂度的操作来计算创建的这些键是否已被驱逐。 ()allkeys-random 整个键空间中随机驱逐一个键 ()volatile-ttl redis会尝试根据键的剩余时间(TTL)清除键。

maxmemory-samples 3

redis的LRU算法是不准确的,因为redis并不会自动选择最佳的候选键来驱逐,例如最少使用的键或者最早访问的键。相反,redis默认行为是选取5个键的samples,并驱逐当中最少使用的那个。
如果想要增加LRU算法的精确性,可以更改redis.conf文件中的maxmemory-samples指令,或者在运行时通过config set maxmemory-samples命令进行设置。 将maxmemory-samples增加到10,从而提升redisLRU算法的性能,效果接近真实LRU算法,但是副作用就是消耗更多的CPU计算能力。将maxmemory-samples降至3,从而减少了redisLRU算法的精确性,不过相应地加快了处理速度。

appendonly yes

默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了。但是redis如果中途宕机,会导致可能有几分钟的数据丢失,根据save来策略进行持久化
Append Only File是另一种持久化方式
可以提供更好的持久化特性。Redis会把每次写入的数据在接收后都写入appendonly.aof文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。默认值为no。

appendfilename

aof文件名,默认是"appendonly.aof"

appendfsync

aof持久化策略的配置;
no表示不执行fsync,由操作系统保证数据同步到磁盘,速度最快

appendfsync always

每次收到写命令就立即强制写入磁盘,是最有保证的完全的持久化,但速度也是最慢的,一般不推荐使用。 

appendfsync everysec

每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,是受推荐的方式。 可能会导致丢失这1s数据 

no-appendfsync-on-rewrite no

在aof重写或者写入rdb文件的时候,会执行大量IO,此时对于everysec和always的aof模式来说,执行fsync会造成阻塞过长时间,no-appendfsync-on-rewrite字段设置为默认设置为no。
如果对延迟要求很高的应用,这个字段可以设置为yes,否则还是设置为no,这样对持久化特性来说这是更安全的选择。 设置为yes表示rewrite期间对新写操作不fsync,暂时存在内存中,等rewrite完成后再写入,默认为no,建议yes。
Linux的默认fsync策略是30秒。可能丢失30秒数据。默认值为no。

auto-aof-rewrite-percentage 100

默认值为100。aof自动重写配置,当目前aof文件大小超过上一次重写的aof文件大小的百分之多少进行重写,即当aof文件增长到一定大小的时候,Redis能够调用bgrewriteaof对日志文件进行重写。
当前AOF文件大小是上次日志重写得到AOF文件大小的二倍(设置为100)时,自动启动新的日志重写过程。

auto-aof-rewrite-min-size 64mb

设置允许重写的最小aof文件大小,避免了达到约定百分比但尺寸仍然很小的情况还要重写。

aof-load-truncated no

aof文件可能在尾部是不完整的,当redis启动的时候,aof文件的数据被载入内存。重启可能发生在redis所在的主机操作系统宕机后,尤其在ext4文件系统没有加上data=ordered选项,出现这种现象 

redis宕机或者异常终止不会造成尾部不完整现象,可以选择让redis退出,或者导入尽可能多的数据。如果选择的是yes,当截断的aof文件被导入的时候,会自动发布一个log给客户端然后load。如果是no,用户必须手动redis-check-aof修复AOF文件才可以。默认值为 yes。

lua-time-limit

一个lua脚本执行的最大时间,单位为ms。默认值为5000.

工作模式:cluster-enabled yes

集群模式启动redis设置为yes,表示开启集群,否则会以单实例启动。

集群配置文件:cluster-config-file nodes-6379.conf

这是redis集群运行时服务自身维护的配置文件。Redis群集节点每次发生更改时自动保留群集配置(基本上为状态)的文件,以便能够 在启动时重新读取它。 该文件列出了群集中其他节点,它们的状态,持久变量等等。 由于某些消息的接收,通常会将此文件重写并刷新到磁盘上。

cluster-node-timeout 15000

集群超时时间(毫秒),节点超时多久则认为它宕机了。如果主节点超过指定的时间不可达,进行故障切换,将其对应的从节点提升为主。注意,每个无法在指定时间内到达大多数主节点的节点将停止接受查询。

cluster-require-full-coverage no

默认为yes,表示只有所有哈希槽有主节点管理的时候,集群才可以接受查询。no 表示 当集群哈希槽的一部分没有主节点接管或者主节点宕机没有从节点进行故障切换时,仍然可以提供服务。

cluster-migration-barrier 1

可以配置值为1。master的slave数量大于该值,slave才能迁移到其他孤立master上,如这个参数若被设为2,那么只有当一个主节点拥有2 个可工作的从节点时,它的一个从节点会尝试迁移。 

# cluster-replica-validity-factor 10

集群副本有效因子
此参数设置后,需要在集群可用性和数据的完整性之间进行取舍。 例如:设置了副本有效性因子为cluster-replica-validity-factor ,节点超时时间 cluster-node-timeout ,且副本的复制周期为10秒,那么如果从节点与主节点的最后一次交互的时间大于(node-timeout * replica-validity-factor) + repl-ping-replica-period)的值,将不会进行故障转移。 如果需要集群的最大可用性,可以将此值设置为0,表示忽略从节点最后一次和主节点交互的时间,从节点始终进行故障转移。但数据的完整性最低

配置文件

bind 10.0.0.10
protected-mode no
port
tcp-backlog
timeout
tcp-keepalive
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile "/data/module/redis-5.0.0/logs/redis.log"
databases
always-show-logo yes
save ""
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum no
dbfilename dump.rdb
dir /data/module/redis-5.0./data
masterauth
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay
repl-disable-tcp-nodelay no
replica-priority
requirepass
rename-command flushall abc
maxmemory 1GB
maxmemory-policy allkeys-lru
maxmemory-samples
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage
auto-aof-rewrite-min-size 64mb
aof-load-truncated no
lua-time-limit
cluster-enabled yes
cluster-config-file nodes-.conf
cluster-node-timeout
cluster-require-full-coverage yes
slowlog-log-slower-than
slowlog-max-len
latency-monitor-threshold
notify-keyspace-events ""
hash-max-ziplist-entries
hash-max-ziplist-value
list-max-ziplist-size -
list-compress-depth
set-max-intset-entries
zset-max-ziplist-entries
zset-max-ziplist-value
hll-sparse-max-bytes
stream-node-max-bytes
stream-node-max-entries
activerehashing yes
client-output-buffer-limit normal
client-output-buffer-limit replica 256mb 64mb
client-output-buffer-limit pubsub 32mb 8mb
hz
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes

本文参考:https://www.cnblogs.com/ysocean/p/9074787.html

redis集群配置文件的更多相关文章

  1. [个人翻译]Redis 集群教程(上)

    官方原文地址:https://redis.io/topics/cluster-tutorial  水平有限,如果您在阅读过程中发现有翻译的不合理的地方,请留言,我会尽快修改,谢谢.        这是 ...

  2. Redis集群教程(Redis cluster tutorial)

    本博文翻译自Redis官网:http://redis.io/topics/cluster-tutorial        本文档以温和的方式介绍Redis集群,不使用复杂的方式来理解分布式系统的概念. ...

  3. Redis集群入门

    官方文章: https://redis.io/topics/cluster-tutorial#redis-cluster-configuration-parameters 本文永久地址: https: ...

  4. Redis集群配置和常见异常解决

    前文 Redis的Cluster集群,是在分布式且开源环境下最佳的高可用解决方案,可以有效的解决服务器宕机下或高并发下,数据的完整性. 文档前提 Redis 3.0版本或更高版本.(3.0版本开始支持 ...

  5. Redis集群之配置文件详解(待完善)

    运维Redis集群的核心任务就是配置文件Redis.conf 命令行将现使用的Redis配置参数导出到 redis.conf.bak文件 .conf > redis.conf.bak 查看文件内 ...

  6. Redis集群案例与场景分析

    1.背景 Redis的出现确实大大地提高系统大并发能力支撑的可能性,转眼间Redis的最新版本已经是3.X版本了,但我们的系统依然继续跑着2.8,并很好地支撑着我们当前每天5亿访问量的应用系统.想当年 ...

  7. Java Spring mvc 操作 Redis 及 Redis 集群

    本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 R ...

  8. Redis集群搭建与简单使用

    介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-3.2.4 版本. 两台虚拟机都是 CentOS ,一台 ...

  9. window下使用Redis Cluster部署Redis集群

    日常的项目很多时候都需要用到缓存.redis算是一个比较好的选择.一般情况下做一个主从就可以满足一些比较小的项目需要.在一些并发量比较大的项目可能就需要用到集群了,redis在Windows下做集群可 ...

随机推荐

  1. 关于宽搜BFS广度优先搜索的那点事

    以前一直知道深搜是一个递归栈,广搜是队列,FIFO先进先出LILO后进后出啥的.DFS是以深度作为第一关键词,即当碰到岔道口时总是先选择其中的一条岔路前进,而不管其他岔路,直到碰到死胡同时才返回岔道口 ...

  2. u盘乱码了,如何备份

    文/亡命之徒 2013年7月的最后一天,今天在公司下了些嵌入式的教程存在u盘里,准备拿回家到自己的本子上学习,不知怎的查到电脑上,显示一些文件夹,名字都是乱码,顿时心情扫地,无奈只能到互联网上寻找re ...

  3. 【PAT甲级】1096 Consecutive Factors (20 分)

    题意: 输入一个int范围内的正整数,输出它最多可以被分解为多少个连续的因子并输出这些因子以*连接. trick: 测试点5包含N本身是一个素数的数据,此时应当输出1并把N输出. 测试点5包含一个2e ...

  4. vue生命周期中update的具体用法

    在页面上 改变元数据data中数据,并且导致页面重新渲染时,才会进入update周期

  5. centos7一步一步搭建docker tomcat 及重点讲解

    系统环境:centos7.7 (VMware中) image版本:tomcat:8-jdk8-openjdk (截止2020.01.10该系列版本) 安装步骤参考文章:https://www.jian ...

  6. js中ES6的Set的基本用法

    ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. const s = new Set(); [2,3,5,4,5,2,2].forEach(x => s. ...

  7. UVA - 13024 Saint John Festival 凸包+二分

    题目链接:https://vjudge.net/problem/UVA-13024 题意:先给出\(L\)个点构造一个凸包,再给出\(S\)个点,询问有几个点在凸包内. 题解:判断点是否在凸包内的模板 ...

  8. jvm 内存,线程,gc分析

    1.查看 gc的次数,和各个垃圾回收区域的内存比例  jstat : jstat -gcutil pid interval(ms) 例子:jstat -gcutil 332 1000 参数说明如下: ...

  9. python opencv:保存图像

  10. centosflask+uWSGI+nginx部署

    centosflask+uWSGI+nginx部署 1.      概念 Flask自带webserver--Werkzeug,可以搭建服务,运行网站.但在开发时,一般会用专业的--uWSGI. 另外 ...