文章目录

  • 常用配置
  • 进阶配置
    • 主从复制
    • 安全
    • 限制 CLIENTS
    • RDB模式相关配置
    • AOF模式 appendonly配置
    • slowlog
    • INCLUDES
    • vm相关
    • 其他配置

常用配置

Redis支持很多的参数配置,但都有默认值
daemonize默认情况下,redis 不是在后台运行的,如果需要在后台运行,把该项的值更改为yes。
protected-mode保护模式,protected-mode设置为yes的情况下,为了我们的应用服务可以正常访问Redis,我们需要设置Redis的bind参数或者密码参数requirepass。
bind指定 Redis只接收来自于该IP地址的请求,如果设置成0.0.0.0表示接收所有ip请求,不建议使用。
port监听端口,默认为6379。
databases设置数据库的个数,默认使用的数据库是0。
save设置Redis进行数据库镜像备份的频率。

#如果900秒内至少1个key发生变化(新增、修改和删除),则重写rdb文件;
save 900 1
#如果每300秒内至少10个key发生变化(新增、修改和删除),则重写rdb文件;
save 300 10
#如果每60秒内至少10000个key发生变化(新增、修改和删除),则重写rdb文件。
save 60 10000

dbfilename镜像备份文件的文件名。
dir数据库镜像备份的文件放置的路径。
requirepass设置客户端连接后进行任何其他指定前需要使用的密码。
maxclients限制同时连接的客户数量。
maxmemory设置redis 能够使用的最大内存。
logfile 日志文件名。

进阶配置

stop-writes-on-bgsave-error 持久化如果出错,是否还需要继续工作。
loglevel 指定日志记录级别。

Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
debug 记录很多信息,用于开发和测试
varbose 有用的信息,不像debug会记录那么多
notice 普通的verbose,常用于生产环境
warning 只有非常重要或者严重的信息会记录到日志

timeout设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接,0是关闭此设置

主从复制

slaveof <masterip> <masterport>主从复制。设置该数据库为其他数据库的从数据库。设置当本机为slave服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步。这里永久性的设置主机IP(设置后自己视为从节点)
masterauth <master-password>当master服务设置了密码保护时(用requirepass制定的密码)slave服务连接master的密码。
slave-serve-stale-data当从库同主机失去连接或者复制正在进行,从库有两种运行方式:

  1. 如果slave-serve-stale-data设置为yes(默认设置),从库会继续相应客户端的请求
  2. 如果slave-serve-stale-data是指为no,出去INFO和SLAVOF命令之外的任何请求都会返回一个错误"SYNC with master in progress"

repl-ping-slave-period从库会按照一个时间间隔向主库发送PINGs.可以通过repl-ping-slave-period设置这个时间间隔,默认是10秒。
总结就是上面间隔多少秒发送一次检测存活的pingPong信号,下面repl-timeout就是判定发送这个信号后的返回超时时间。
repl-timeout 设置主库批量数据传输时间或者ping回复时间间隔,默认值是60秒。一定要确保repl-timeout大于repl-ping-slave-period。

安全

requirepass设置客户端连接后进行任何其他指定前需要使用的密码。警告:因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行150K次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。
rename-command命令重命名。

在一个共享环境下可以重命名相对危险的命令。比如把CONFIG重名为一个不容易猜测的字符。
举例:
rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
如果想删除一个命令,直接把它重命名为一个空字符""即可,如下:
rename-command CONFIG “”

限制 CLIENTS

maxclients限制同时连接的客户数量。
maxmemory设置redis 能够使用的最大内存。
maxmemory-policy 内存达到上限的处理策略,有以下几种策略

volatile-lru :利用 LRU 算法移除设置过过期时间的 key 。
volatile-random :随机移除设置过过期时间的 key 。
volatile-ttl :移除即将过期的 key ,根据最近过期时间来删除(辅以 TTL )
allkeys-lru :利用 LRU 算法移除任何 key 。
allkeys-random :随机移除任何 key 。
noeviction :不移除任何 key ,只是返回一个写错误。
默认是:maxmemory-policy volatile-lru
LRU 和 minimal TTL 算法都不是精准的算法,但是相对精确的算法(为了节省内存),随意你可以选择样本大小进行检测。

RDB模式相关配置

rdbcompression存储至本地数据库时(持久化到rdb文件)是否压缩数据,需要消耗一些cpu的资源,默认为yes
rdbchecksum保存rdb文件的时候,进行错误的检查校验。
dirrdb文件保存的目录,如:/www/server/redis/
dbfilenameRDB后,本地持久化数据库文件名,默认值为dump.rdb(持久化的数据都会保存在这个文件里然后准备刷盘)

AOF模式 appendonly配置

appendonly 默认是no,不开启AOF模式的,默认是使用RDB方式持久化的,在大部分使用的情况下,RDB完全够用了
appendfilename 持久化的文件的名字,如:“appendonly.aof”
appendfsync同步策略。

#appendfsync always #每次修改都会 sync 消耗性能
appendfsync everysec #每秒执一次 sync,可能会丢失这1s的数据
#appendfsync no #不执行 sync 这个时候操作系统自己同步数据,数据最快

AOF策略设置为always或者everysec时,后台处理进程(后台保存或者AOF日志重写)会执行大量的I/O操作。在某些Linux配置中会阻止过长的fsync()请求。注意现在没有任何修复,即使fsync在另外一个线程进行处理。为了减缓这个问题,可以设置下面这个参数no-appendfsync-on-rewrite。
AOF 自动重写,当AOF文件增长到一定大小的时候Redis能够调用 BGREWRITEAOF 对日志文件进行重写
它是这样工作的:Redis会记住上次进行些日志后文件的大小(如果从开机以来还没进行过重写,那日子大小在开机的时候确定)
基础大小会同现在的大小进行比较。如果现在的大小比基础大小大制定的百分比,重写功能将启动
同时需要指定一个最小大小用于AOF重写,这个用于阻止即使文件很小但是增长幅度很大也去重写AOF文件的情况
设置 percentage 为0就关闭这个特性
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

slowlog

slowlog-log-slower-thanRedis Slow Log 记录超过特定执行时间的命令。执行时间不包括I/O计算比如连接客户端,返回结果等,只是命令执行时间。可以通过两个参数设置slow log:一个是告诉Redis执行超过多少时间被记录的参数slowlog-log-slower-than(微秒),另一个是slow log 的长度。当一个新命令被记录的时候最早的命令将被从队列中移除 。注意制定一个负数将关闭慢日志,而设置为0将强制每个命令都会记录
slowlog-max-len对日志长度没有限制,只是要注意它会消耗内存,可以通过 SLOWLOG RESET 回收被慢日志消耗的内存。

INCLUDES

include指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使加粗样式用同一份配置文件,而同时各个实例又拥有自己的特定配置文件,如:

include /path/to/local.conf
include /path/to/other.conf

vm相关

vm-enabled指定是否启用虚拟内存机制,默认值为no,简单介绍一下,VM机制将数据分页存放,由redis将访问量较小的页即冷数据 swap到磁盘上,访问多的页面由磁盘自动换出到内存中。
vm-swap-file虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个redis实例共享。
vm-max-memory将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的(redis的索引数据就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为 0。
vm-page-sizeredis swap文件分成了很多的page,一个对象可以保存在多个page上面,但一个page上不能被多个对象共享,vm-page-size是根据存储的数据大小来设定的,作者建议如果储存很多小对象,page大小最好设置为32或者64bytes;如果存储很多大对象,则可以使用更大的page,如果不确定,就使用默认值。
vm-pages设置swap文件中page数量,由于页表(一种表示页面空闲或使用的bitmap)是放在内存中的,在磁盘上每8个pages将消耗1byte的内存:
vm-max-threads设置访问swap文件的线程数,最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的,可能会造成长时间的延迟。默认值为4。
glueoutputbuf yes设置在客户端应答时,是否把较小的包含并为一个包发送,默认为开启:

其他配置

当hash中包含超过指定元素个数并且最大的元素没有超过临界时,
hash将以一种特殊的编码方式(大大减少内存使用)来存储,这里可以设置这两个临界值
Redis Hash对应Value内部实际就是一个HashMap,实际这里会有2种不同实现,
这个Hash的成员比较少时Redis为了节省内存会采用类似一维数组的方式来紧凑存储,而不会采用真正的HashMap结构,对应的value redisObject的encoding为zipmap,
当成员数量增大时会自动转成真正的HashMap,此时encoding为ht。

hash-max-zipmap-entries 512
hash-max-zipmap-value 64

list数据类型多少节点以下会采用去指针的紧凑存储格式。
list数据类型节点值大小小于多少字节会采用紧凑存储格式。

list-max-ziplist-entries 512
list-max-ziplist-value 64

set数据类型内部数据如果全部是数值型,且包含多少节点以下会采用紧凑格式存储。

set-max-intset-entries 512

zsort数据类型多少节点以下会采用去指针的紧凑存储格式。
zsort数据类型节点值大小小于多少字节会采用紧凑存储格式。

zset-max-ziplist-entries 128
zset-max-ziplist-value 64

Redis将在每100毫秒时使用1毫秒的CPU时间来对redis的hash表进行重新hash,可以降低内存的使用
当你的使用场景中,有非常严格的实时性需要,不能够接受Redis时不时的对请求有2毫秒的延迟的话,把这项配置为no。
如果没有这么严格的实时性要求,可以设置为yes,以便能够尽可能快的释放内存

activerehashing yes

本文内容到此结束了,
如有收获欢迎点赞

Redis配置文件redis.conf详解相关推荐

  1. Apache配置文件httpd.conf详解

    转自:http://www.jianshu.com/p/c36dd3946e74 Apache配置文件httpd.conf详解 Apache的配置由httpd.conf文件配置,因此下面的配置指令都是 ...

  2. yum的配置文件yum.conf详解

    转自:https://blog.csdn.net/im5437/article/details/53445142 说明:经过网上抄袭和自己的总结加实验,非常详细,可留作参考. yum的配置一般有两种方 ...

  3. keepalived配置文件keepalived.conf详解

    keepalived.conf详解 一个功能比较完整的常用的 keepalived 配置文件,主要包含以下三块 第2行全局定义块是必须配置项, 一,全局定义块 这部分主要用来设置Keepalived的 ...

  4. Redis高可用方案哨兵机制------ 配置文件sentinel.conf详解

    Redis的哨兵机制是官方推荐的一种高可用(HA)方案,我们在使用Redis的主从结构时,如果主节点挂掉,这时是不能自动进行主备切换和通知客户端主节点下线的. Redis-Sentinel机制主要用三 ...

  5. Nginx的配置文件nginx.conf详解

    Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目 ...

  6. [redis] Redis 配置文件置参数详解

    ################################ 基础配置 ################################# #daemonize no 默认情况下, redis 不 ...

  7. Redis配置文件常用配置详解

  8. Apache主配置文件httpd.conf 详解

    2019独角兽企业重金招聘Python工程师标准>>> Apache的主配置文件:/etc/httpd/conf/httpd.conf 默认站点主目录:/var/www/html/ ...

  9. 配置文件keepalived.conf详解

    Keepalived的配置文件可以分为三块: 全局定义块:对整个 Keepalive 配置生效的,不管是否使用 LVS: VRRP 实例定义块:是 Keepalived 的核心: 虚拟服务器(LVS) ...

  10. linux apache 配置文件位置,Apache主配置文件httpd.conf 详解

    Apache的主配置文件:/etc/httpd/conf/httpd.conf 默认站点主目录:/var/www/html/ Apache服务器的配置信息全部存储在主配置文件/etc/httpd/co ...

最新文章

  1. COCO2017数据集api说明
  2. java+mysql中文乱码问题
  3. 2.9 情感分类-深度学习第五课《序列模型》-Stanford吴恩达教授
  4. 模糊c均值聚类_六种常用的文本聚类方法介绍
  5. gatling 使用_使用Gatling + Gradle + Jenkins Pipeline为您的JAX-RS(和JavaEE)应用程序进行连续压力测试...
  6. 新萝卜家园windows11 64位官网正版系统v2021.07
  7. Linux系统学习:网络指令:如何查看一个域名有哪些 NS 记录
  8. Spring Boot从Controller层进行单元测试
  9. python 删除set指定值_python中的变量和数据类型(三)
  10. python从入门到放弃表情图-Python 从入门到放弃(一)
  11. “十四五”国家重点研发计划“区块链”重点专项 2022年(附pdf下载地址)
  12. OpenCV对矩形填充透明颜色
  13. mysql数据库常用的增删改查sql语句
  14. love2d环境搭配
  15. dell计算机运行慢怎么解决方法,戴尔笔记本电脑运行速度慢怎么办?
  16. python把两个图片合成一张图
  17. 计算机存储一个字节数是,在计算机中,如果一个存储单元能存放一个字节,则容量为64KB的存储器中的存储单元个数 。...
  18. Mybatis注解开发笔记
  19. 自动备份Linux上的博客数据到坚果云
  20. 程序员面试之九阴真经

热门文章

  1. 计算机无法用u盘重装系统,电脑开不了机怎么办教你用u盘安装系统
  2. A. Cookies
  3. 【游戏开发面经1】游戏客户端开发岗(阿里 | 游戏 | 凉面面经)
  4. 前端vue实现广告条左右上下滚动,一个marquee标签就完事
  5. 【干货#011】小程序页面滚动实现广告条隐藏
  6. 双色球手机版 旋转矩阵手机版
  7. Win10 Mysql 8.0.26版本忘记密码后重新修改。
  8. Linux高级运维(十)-搭建企业中最常用缓存代理服务器Squid , Varnish
  9. 同步和异步、阻塞和非阻塞区别
  10. java程序之出差补助计算