1.配置文件用法

启动redis的时候指定配置⽂件路径:

./redis-server /path/to/redis.conf

不指定配置⽂件的时候使⽤内置配置⽂件启动,此⽅法仅适⽤于开发和测试。

2.include配置配置

⽤于引⼊其他配置⽂件,配置集群的时候⽤于引⼊公共配置⽤法如下:

include /path/to/other.conf

3.bind

此配置⽤于绑定服务器⽹络接⼝,默认情况下绑定所有可⽤的⽹络端⼝。 可以通

过: bind ip1 ip2... 绑定多个端⼝。 ⽐如服务器局域⽹ip地址为:192.168.20.127。

以下配置可以实现局域⽹和本地访问:

bind 192.168.20.127 127.0.0.1

注:

bind 192.168.1.100 10.0.0.1
bind 127.0.0.1

上⾯配置只绑定了127.0.0.1这个ip。

bind 0.0.0.0

为绑定所有可⽤⽹络端⼝。

4.protected-mode

保护模式配置:

protectedmode yes

当保护模式开启的时候,且没有配置bind和密码,只有ipv4和ipv6的回路ip127.0.0.1

and ::1可以访问

5.port

redis监听的端⼝配置:

port 6379
port 0 不监听端⼝

6.timeout

设置客户端连接超时时间,0的时候为关闭此功能。当客户端在此时间段内没有发送

指令,关闭连接。

timeout 0

7.daemonize

daemonize yes

设置redis后台运⾏当后台运⾏的时候会⽣成⼀个进程⽂件:

/var/run/redispid

8.pidfile

配置后台运⾏时⽣成的pid⽂件路径:

pidfile /var/run/redis6379.pid

9 loglevel

指定⽇志打印等级:

debug(开发测试)、verbose、notice(线上)、warning

loglevel notice

10.logfile

指定⽇志⽂件路径和名称如:

logfile "/Users/yuanweipeng/Desktop/redislog"

设置系统⽇志:

syslog-enabled no
syslog-ident redis
syslog-facility local0 设置系统⽇志设备名称

11.databases

设置数据库个数:

databases 16

默认的数据库是db0,可以通过可以通过select dbid为每一个连接选择不同的数据库。数据库的取值应该在0-(db-1)

12.save

将内存数据库的内容写到文件中。格式为:

save <seconds> <changes>

比如:

save 900 1 900秒内有一次key修改
save 300 10 300秒内有10次修改
save 60 10000

13.stop-writes-on-bgsave-error

当redis写入到文件操作失败后,redis将不会接受内存写操作。用来提醒用户数据持久化失败。

stop-writes-on-bgsave-error yes

如果对redis进行了持久化监控,可以将此项配置成no,实现即使出现持久化问题,redis依然可以接受内存写操作。

14.dbfilename

配置redis转存文件的地址

dbfilename dump.rdb

15.dir

配置数据库文件位置:

dir ./

16.主从复制相关

1.redis的主从复制是异步的,可以配置当某几个slave数据库连不上的时候,停止接收内存写操作。

2.主从数据同步是自动完成的,当主从网络短线重新连接的时候,从库会自动从新数据同步。

slaveof <masterip> <masterport>

用于配置主库ip地址和端口。

masterauth <master-password>

配置主库的数据库密码。

slave-serve-stale-data yes

次配置用于设置当slave和master失去连接的时候是否继续接受客户端连接。当此项目设置为yes的时候会返回过期的数据或者null,当设置为no的时候会返回error:

SYNC with master in progress

设置slave是否接受写操作:

slave-read-only yes

slave可用于保存短暂的数据,当从库和主库同步数据的时候,会将写入到slave的数据删除。

repl-diskless-sync no

复制同步策略配置:disk or socket.

当增加新的slave数据库或者断开后重新连接的时候,会发生全量同步,这时候是将redis的db文件直接从主库传输到从库。文件传输有两种方式:

第一种:先将内存数据写入磁盘,然后再将生成的文件传输到slave。
第二种:直接新起一个进程,将数据通过socket传输到slave

根据网络速度和磁盘速度选择不同的复制方式。

repl-ping-slave-period 10

slave向master发送ping请求的时间间隔。

repl-timeout 60

超时时间,应该小于repl-ping-slave-period

repl-disable-tcp-nodelay no

设置是否会有延迟时间。设置为no的时候主库和从库数据传输的延迟时间较短。但是消耗带宽比较大。

repl-backlog-size 1mb

设置slave断开连接的时候数据的缓冲区,在缓冲区没有用完之前,从库回复链接只需要从缓冲区同步数据,不需要全量同步。只有当有从库的时候才会设置此项。

repl-backlog-ttl 3600

设置当master没有slave连接的时候,多久释放缓冲区。设置为0的时候表示不释放缓冲区。

slave-priority 100

设置slave的优先级,当master宕机的时候会选出一个优先级最低的slave提升为主库。0表示不能当作master

当slave少于3个链接的时候,master停止接受写入。判断失联时间为:10s内slave没有从master复制数据,则表示失联。

min-slaves-to-write 3 默认设置为0,关闭此功能
min-slaves-max-lag 10

17.安全设置相关

requirepass 123456

用于设置客户端连接密码。

rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52

命令重命名。

maxclients 10000

设置最大客户端连接数量。

maxmemory <bytes>

设置最大内存。

当redis内存达到上限的时候,会根据配置的垃圾回收策略删除key。当没有设置垃圾回收策略的时候,redis会对写操作报异常,都操作仍然正常返回数据。

当没有设置此配置项的时候,只有当系统内存达到上限的时候会抛出out-of-memory exception异常。

maxmemory-policy noeviction 默认配置

volatile-lru -> 使用最近最少使用算法删除过期的key
allkeys-lru -> 根据最近最少使用算法删除key
volatile-random -> 从过期的key中随机删除
allkeys-random -> 随机删除key
volatile-ttl -> 删除最近过期的key
noeviction -> 直接在写操作的时候返回error

LRU算法中的样本数,比如redis会检查5个key中的lru

maxmemory-samples 5

18.Redis集群

需要开启集群配置的才能当作Redis集群的一个节点:

cluster-enabled <yes/no>:

该项如果设置成yes,该实例支持redis集群。否则该实例会像往常一样以独立模式启动。

集群的每一个节点都需要有一个配置文件,这个文件由redis生成和更新的。

cluster-config-file nodes-6379.conf

必须注意到尽管该项是可选的,这并不是一个用户可以编辑的配置文件,这是redis集群节点自动生成的配置文件,每次一旦配置有修改它都通过该配置文件来持久化配置(基本上都是状态),这样在下次启动的时候可以重新读取这些配置。该文件中列出了该集群中的其他节点的状态,持久化变量等信息。 当节点收到一些信息的时候该文件就会被冲重写

节点过期时间配置,当超过此时间则认为此节点为失败状态。

cluster-node-timeout 15000

redis集群节点的最大超时时间。响应超过这个时间的话该节点会被认为是挂掉了。如果一个master节点超过一定的时候无法访问,它会被它的slave取代。 该参数在redis集群配置中很重要。很明显,当节点无法访问大部分master节点超过一定时间后,它会停止接受查询请求。

cluster-slave-validity-factor <factor>

:如果将该项设置为0,不管slave节点和master节点间失联多久都会一直尝试failover(设为正数,失联大于一定时间(factor*节点TimeOut),不再进行FailOver)。比如,如果节点的timeout设置为5秒,该项设置为10,如果master跟slave之间失联超过50秒,slave不会去failover它的master(意思是不会去把master设置为挂起状态,并取代它)。注意:任意非0数值都有可能导致当master挂掉又没有slave去failover它,这样redis集群不可用。在这种情况下只有原来那个master重新回到集群中才能让集群恢复工作。

cluster-migration-barrier <count>:

一个master可以拥有的最小slave数量。该项的作用是,当一个master没有任何slave的时候,某些有富余slave的master节点,可以自动的分一个slave给它。具体参见手册中的replica migration章节

cluster-require-full-coverage <yes/no>:

如果该项设置为yes(默认就是yes) 当一定比例的键空间没有被覆盖到(就是某一部分的哈希槽没了,有可能是暂时挂了)集群就停止处理任何查询操作。如果该项设置为no,那么就算请求中只有一部分的键可以被查到,一样可以查询(但是有可能会查不全)

19.慢查日志

slowlog-log-slower-than 1000000

此配置项指定查询时间超过多少的操作,打印日志。1000000=1s。当此配置为0的时候记录每次查询操作。为负数的时候关闭此功能。

slowlog-max-len 128

它决定 slow log 最多能保存多少条日志, slow log 本身是一个 FIFO 队列,当队列大小超过 slowlog-max-len 时,最旧的一条日志将被删除,而最新的一条日志加入到 slow log ,以此类推。

20.推送/订阅功能

notify-keyspace-events ""

空的时候关闭此功能,选项值为非空字符串时,启用该功能,非空字符串由特定的多个字符组成,每个字符表示不同的意义:

     K:keyspace事件,事件以__keyspace@<db>__为前缀进行发布;

     E:keyevent事件,事件以__keyevent@<db>__为前缀进行发布;

     g:一般性的,非特定类型的命令,比如del,expire,rename等;

     $:字符串特定命令;

     l:列表特定命令;

     s:集合特定命令;

     h:哈希特定命令;

     z:有序集合特定命令;

     x:过期事件,当某个键过期并删除时会产生该事件;

     e:驱逐事件,当某个键因maxmemore策略而被删除时,产生该事件;

     A:g$lshzxe的别名,因此”AKE”意味着所有事件。

注意,该选项的值中至少需要包含K或者E,否则不会发布任何事件。比如,如果需要开启针对列表的keyspace事件通知,则该选项需要配置为“Kl”;

Redis学习笔记01---配置文件的更多相关文章

  1. redis学习笔记01 — 基本介绍、安装配置及常用命令

    redis--NoSQL的一种 为了解决高并发.高可用.高扩展.大数据存储等一系列问题而产生的数据库解决方案,就是NoSQL NoSQL,非关系型数据库,全名:Not Only Sql,它不能代替关系 ...

  2. redis学习笔记-01:redis简介

    1.redis是一个高性能的Nosql数据库,遵守BSD协议,使用c语言编写.支持网络.可基于内存亦可持久化,是一种日志型.Key-Value数据库,也可看做是一个分布式的.基于内存的缓存工具. 2. ...

  3. redis学习笔记-01 string类型命令

    一.set key value set joker 123456 #设定key为joker,value为123456的数据 二.keys * keys * #用于查看该数据库中所有的key值 三.se ...

  4. Redis:学习笔记-01

    Redis:学习笔记-01 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 1. Redis入门 2.1 ...

  5. redis 学习笔记(6)-cluster集群搭建

    上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...

  6. Redis学习笔记4-Redis配置详解

    在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server   xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...

  7. (转)redis 学习笔记(1)-编译、启动、停止

    redis 学习笔记(1)-编译.启动.停止   一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...

  8. Redis 学习笔记4: Redis 3.2.1 集群搭建

    在CenOS 6.7 linux环境下搭建Redis 集群环境 1.下载最新的Redis版本 本人下载的Redis版本是3.2.1版本,下载之后,解压,编译(make): 具体操作可以参考我的博文:R ...

  9. Redis学习笔记(2)——Redis的下载安装部署

    一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...

  10. Redis学习笔记(1)- CentOS 6.4 安装Redis

    Redis学习笔记(1)- CentOS 6.4 安装Redis 2013.10.13     学习环境 vm 10.1 + 默认.新装的干净 CentOS 6.4  64BIT系统     准备 1 ...

随机推荐

  1. 记住,永远不要在MySQL中使用“utf8”-转

    http://www.infoq.com/cn/articles/in-mysql-never-use-utf8-use-utf8 最近我遇到了一个bug,我试着通过Rails在以“utf8”编码的M ...

  2. C#入门笔记3 表达式及运算符

    C#表达式 表达式,把变量.字面值与运算符组合起来,就创建表达式,是计算的基本构件.字面值:是源代码中键入的数字.字符串,表示指定类型的值.常用有几种:整数.实数.字符.字符串. 整数字面量[也能使用 ...

  3. thinkphp分页集成

    控制器: $User = M('webcase'); //  实例化 User 对象 $list = $User->order('id desc')->page($_GET['p'].', ...

  4. iOS 如何解决并发请求时,只接受最后一个请求返回的结果

      大致意思是 虽然NSOperation 的cancel 并不能取消请求,但是可以对这个NSOperation进行标记. 当cancel 属性是YES时,表明 NSOperation虽然已经执行,并 ...

  5. config文件声明非系统节点的方法

    有一些自定义节点如果不声明会报出无法识别的节点 XXX 这时候要声明该节点 写法如下 <configSections> <!--声明一个节点组--> <sectionGr ...

  6. UVA - 1279 Asteroid Rangers (动点的最小生成树)

    题意,有n个匀速动点,求最小生成树的改变次数. 一句话总结:动态问题的一般做法是先求出一个静态的解,然后求出解发生改变的事件,事件按照时间排序,依次处理. 先求出最开始的最小生成树(MST),当MST ...

  7. FIBON高精度

    #include<stdio.h> #include<string.h> int u,n; ],b[],h[]; ],y[],z[]; int main() { char s( ...

  8. 操作系统项目:向Linux内核添加一个系统调用

    内容: 向Linux增加一个系统调用 撰写一个应用测试程序调用该系统调用 使用ptrace或类似的工具对该测试程序进行跟踪调 环境: 1.vmware workstation 15.0.0 2.ubu ...

  9. tomcat中如何禁止和允许主机或地址访问

    1.tomcat中如何禁止和允许列目录下的文件 在{tomcat_home}/conf/web.xml中,把listings参数设置成false即可,如下: <servlet>...< ...

  10. 1008: ASCII码

    题目描述 相信大家一定都知道大名鼎鼎的ASCII码,这次给你的任务是输入数字(表示ASCII码),输出相对应的字符信息. 输入 第一行为一个整数T(1<=T<=1000).接下来包括T个正 ...