redis数据库参数配置文件详解

# Redis 配置文件

# 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写)
#
# 1k =>
1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb =>
1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024
bytes
#
# 内存配置大小写是一样的.比如 1gb 1Gb 1GB 1gB

# daemonize no 默认情况下,redis不是在后台运行的,如果需要在后台运行,把该项的值更改为yes
daemonize
yes

默认参数

 代码如下 复制代码

361way@ubuntu ~$ egrep -v '(^#|^$)' redis.conf
####################基本配置部分###########################
daemonize yes
#是否在后台运行
pidfile /var/run/redis/redis-server.pid
#运行时redis的pid文件存放的路径
port 6379
#redis监听的端口
bind 127.0.0.1
#监听地址
timeout 0
#设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么server端关闭该连接。0为永不超时
tcp-keepalive 0
loglevel notice
logfile /var/log/redis/redis-server.log
#日志文件存放的路径
databases 16
#################Snapshotting配置##########################
save 900 1    #900秒之内有1个keys发生变化时
save 300 10   #300秒之内有10个keys发生变化时
save 60 10000 #60秒之内有1万个keys发生变化时
stop-writes-on-bgsave-error yes
#是否启用停止写在save出错的时候
rdbcompression yes
#是否启用rdb文件压缩手段,默认为yes 。压缩需要额外的cpu开支,不过这能够有效的减小rdb文件的大小,有利于存储/备份/传输/数据恢复。
rdbchecksum yes
#是否对rdb文件使用CRC64校验和,默认为”yes”,那么每个rdb文件内容的末尾都会追加CRC校验和。
#对于其他第三方校验工具,可以很方便的检测文件的完整性 。
dbfilename dump.rdb
#指定rdb文件的名称
dir /var/lib/redis
#指定rdb/AOF文件的目录位置,只能为文件夹不能为文件
####################### Replication ##########################
slave-serve-stale-data yes
#如果当前server是slave,那么当slave与master失去通讯时,是否继续为客户端提供服务,”yes”表示继续,”no”表示终止。
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
#更新日志文件名,默认值为appendonly.aof
appendfsync everysec
#no表示让操作系统(OS)进行数据缓存同步到磁盘(执行快),always表示每次更新操作后调用fsync()将数据写到磁盘(最安全),everysec表示每秒同步一次。
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
#如果达到64M的百分之百就停止写入
lua-time-limit 5000
#执行一个LUA脚本时的最大时间,防止死循环等等,设置为0是没有限制,单位为秒
slowlog-log-slower-than 10000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
#redis 2.0后引入了 hash 数据结构,hash 中包含超过指定元素个数并且最大的元素当没有超过临界时,hash 将以zipmap来存储。
#zipmap又称为 small hash,可大大减少内存的使用
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
#一个任务可以使用的cpu数目
aof-rewrite-incremental-fsync yes
tcp-keepalive:指定TCP连接是否为长连接,”侦探”信号由server端维护,长连接将会额外的增加server端的开支
#默认为0.表示禁用,非0值表示开启”长连接”;”侦探”信号的发送间隔将有linux系统决定。在多次”侦探”后,如果对等端仍不回复,将会关闭连接,否则连接将会被保持开启。

loglevel:server日志级别,合法值:debug,verbose,notice,warning 默认为notice 。

debug适合开发环境,客户端操作信息都会输出日志
verbose输出一些相对有用的信息,目前效果不明
notice适合生产环境
warning异常信息
databases:设定redis所允许的最大”db簇”的个数,默认为16个簇。客户端可以通过”select”指令指定需要使用的”db簇”索引号,默认为0。 redis的顶层数据结构中,所有K-V都潜在的包括了”db簇”索引号,任何一个key都将隶属于一个”db”。 任何对数据的检索,只会覆盖指定的”db”;例如数据被插入到”db10″中,那么在”db 1″中去get,将会返回null。 对数据归类到不同的db簇中,可以帮助我们实现一些特定的需求,比如根据不同客户端连接,来指定不同的db索引号。

save <seconds> <changes>:在多少秒期间至少多少个变更操作”触发snapshot,snapshot最终将生成新的dump.rdb文件 。 设置 Redis 进行数据库镜像的频率。保存数据到disk的策略 。save " "用来禁用snapshot功能。

appendonly:是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中,默认值为no。

开启append only 模式后,redis 将每一次写操作请求都追加到appendonly.aof 文件中,redis重新启动时,会从该文件恢复出之前的状态。但可能会造成 appendonly.aof 文件过大,所以redis支持BGREWRITEAOF 指令,对appendonly.aof重新整理。

其他参数:

maxclients 10000 :客户端链接的最大数量

slaveof <master ip> <master port>: 将当前server做为slave,并为其指定master信息

requirepass 密码:当前server的授权密码

masterauth <master password> :以认证的方式连接到master。 如果master中使用了”密码保护”,slave必须交付正确的授权密码,才能连接成功。此配置项中<master password>值需要和master机器的”requirepass”保持一致。

vm-enabled yes :redis 是一个内存数据库,当内存满时,无法接收新的写请求,所以在redis2.0后,提供了虚拟内存的支持。但需要注意的是redis 所有的key都会放在内存中,在内存不够时,只把value 值放入交换区中。虽然使用虚拟内存,但性能基本不受影响,需要注意的是要把vm-max-memory设置到足够来放下所有的key。

vm-swap-file /tmp/redis.swap :设置虚拟内存的交换文件路径,不可多个Redis实例共享

vm-max-memory 0 :设置开启虚拟内存后,redis将使用的最大物理内存大小, 默认为0,redis将把他所有能放到交换文件的都放到交换文件中,以尽量少的使用物理内存。即当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。在生产环境下,需要根据实际情况设置该值,最好不要使用默认的 0 。

vm-page-size 32:设置虚拟内存的页大小。如果 value 值比较大,如要在 value 中放置博客、新闻之类的所有文章内容,就设大一点。

vm-pages 134217728:设置交换文件的总的 page 数量。注意page table信息是放在物理内存中,每8个page 就会占据RAM中的 1 个 byte,总的虚拟内存大小 = vm-page-size * vm-pages 。

vm-max-threads 4:设置 VM IO 同时使用的线程数量。

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

slave-serve-stale-data yes:如果当前server是slave,那么当slave与master失去通讯时,是否继续为客户端提供服务,”yes”表示继续,”no”表示终止.
在”yes”情况下,slave继续向客户端提供只读服务,有可能此时的数据已经过期.
在”no”情况下,任何向此server发送的数据请求服务(包括客户端和此server的slave)都将被告知”error”

时间: 2024-11-09 02:05:47

redis数据库参数配置文件详解的相关文章

Redis数据库主从复制配置详解

一.复制基本配置与演示   为了避免单点故障,Redis提供了复制功能,可以实现自动同步的过程.   1.配置   同步后的数据分为两类:一类是主数据库(master),一类是从数据库(slave).主数据库可以进行读写操作,当发生写操作时自动将数据同步给从数据库.而从数据一般只读,并接受主数据库同步过来的数据.   在Redis使用复制功能,只需要在从数据库的配置文件中加入"salveof 主数据库IP 主数据库端口"即可,主数据库无需进行任何配置.   2.Redis复制演示  

redis数据库sentinel命令详解

通信 初始化完成之后,sentinel会主动和master.slave进行通信,获取他们的信息. 获取主服务器信息 首先,sentinel会和master建立两个连接,分别是命令连接和订阅连接(分别保存在sentinelRedisInstance的cc和pc字段中).  代码如下 复制代码 void sentinelHandleRedisInstance(sentinelRedisInstance *ri) {     sentinelReconnectInstance(ri);     ...

比较完整的Nginx配置文件nginx.conf常用参数中文详解_nginx

概述 Nginx使用有两三年了,现在经常碰到有新用户问一些很基本的问题,我也没时间一一回答,今天下午花了点时间,结合自己的使用经验,把Nginx的主要配置参数说明分享一下,也参考了一些网络的内容,这篇是目前最完整的Nginx配置参数中文说明了.更详细的模块参数请参考:http://wiki.nginx.org/Main 配置总结 #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日

Mysql my.ini 配置文件详解_Mysql

Mysql my.ini 配置文件详解 #BEGIN CONFIG INFO #DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载大 #TYPE: SYSTEM #END CONFIG INFO # # 此mysql配置文件例子针对4G内存 # 主要使用INNODB #处理复杂队列并且连接数量较少的mysql服务器 # # 将此文件复制到/etc/my.cnf 作为全局设置, # mysql-data-dir/my.cnf 作为服务器指定设置 # (@loc

Mybatis Generator最完美配置文件详解(完整版)_java

最近没做项目,重新整理了一个最完整的Mybatis Generator(简称MBG)的最完整配置文件,带详解,再也不用去看EN的User Guide了: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

vsftpd配置文件详解

  vsftpd 配置文件详解 1. 默认配置: 1>允许匿名用户和本地用户登陆. anonymous_enable=YES local_enable=YES 2>匿名用户使用的登陆名为ftp或anonymous,口令为空;匿名用户不能离开匿名用户家目录/var/ftp,且只能下载不能上传. 3>本地用户的登录名为本地用户名,口令为此本地用户的口令;本地用户可以在自 己家目录中进行读写操作;本地用户可以离开自家目录切换至有权限访问的其他目录,并在权限允许的情况下进行上传/下载. writ

nginx.conf配置文件详解

首先确保安装了 gcc openssl-devel pcre-devel 和 zlib-devel 等软件,其实主要是为了安装 Nginx 期间的编译等,如果不安装,出错的时候,按照提示一个一个安装也可以. Linux 编译安装: wget http://nginx.org/download/nginx-1.7.6.tar.gz tar zxvf nginx-1.7.6.tar.gz ./configure --sbin-path=/usr/local/nginx/nginx --conf-pa

CentOS6.5下Tomcat7 Nginx Redis配置步骤教程详解_Linux

所有配置均在一台机器上完成,部署拓扑信息如下: 注意:由于Redis配置对jar包和tomcat版本比较严格,请务必使用tomcat7和本文中提供的jar包. 下载地址: http://pan.baidu.com/s/1bO67Ky tomcat: tomcat1 localhost:8080 tomcat2 localhost:9080 nginx: localhost:1210 redis: localhost:6379 1. tomcat的安装和配置 1. 在server.xml文件中,修

Varnish配置文件详解(架构师之路)_Linux

既然Varnish需要在多台服务器上缓存数据,就需要Varnish映射所有的URL到一台单独的主机. 复制代码 代码如下: backend webserver {  .host = "127.0.0.1";  .port = "80";  .connect_timeout = 4s;  .first_byte_timeout = 5s;  .between_bytes_timeout = 20s;  }  该块配置用于定义一台Varnish默认访问的后端服务器,当V