启动的时候,就通过配置文件来启动。

大小写不敏感

image.png

可以包含其他配置文件

image.png

网络

绑定的IP

即允许哪些IP可以访问,默认是本机可以访问。

image.png

保护模式

  1. protected-mode yes

端口

  1. port 6379

General

  1. daemonize yes # 是否以守护进程的方式运行,默认为no,windows不支持no

如果以后台模式运行,就需要一个进程文件。
image.png

  1. # 日志级别
  2. # Specify the server verbosity level.
  3. # This can be one of:
  4. # debug (a lot of information, useful for development/testing)
  5. # verbose (many rarely useful info, but not a mess like the debug level)
  6. # notice (moderately verbose, what you want in production probably)
  7. # warning (only very important / critical messages are logged)
  8. loglevel notice
  9. logfile "" # 日志的文件位置名
  10. databases 16 # 默认16个数据库

快照
Redis是内存数据库,断电即失,所以需要持久化
持久化,在规定的时间内,执行了多少次操作,则会持久化到文件。

  • .rdb文件
  • .aof文件 ```bash

    如果900秒内,至少以1个key进行了修改,进行持久化操作。

    save 900 1

300秒内,至少有10个key进行了修改,进行持久化操作

save 300 10

60秒内,至少1000个key进行了修改,进行持久化操作 => 高并发情况

save 60 10000

我们也可以自己定义持久化规则


stop-writes-on-bgsave-error yes # 持久化出错后,是否继续工作,默认是继续工作的

rdbcompression yes # 是否压缩rdb文件, 需要消耗CPU资源

rdbchecksum yes # 保存rdb文件时,是否进行错误检查

dir ./ # rdb的保存目录

<a name="iV3UY"></a>
# Replication主从复制(后面讲)

<a name="nAgkz"></a>
# Security
可以通过配置文件设置密码,也可以通过命令设置密码。

![image.png](https://cdn.nlark.com/yuque/0/2021/png/12689050/1629149851141-bff57b60-3366-4390-9139-c52912699642.png#clientId=u542737e5-f53f-4&from=paste&height=494&id=ud8d46e34&margin=%5Bobject%20Object%5D&name=image.png&originHeight=580&originWidth=928&originalType=binary&ratio=1&size=320041&status=done&style=none&taskId=u94c1ed6a-b207-4144-ab38-c66b27891fc&width=790)

<a name="fviQ7"></a>
# 限制limits
```bash
maxclients 10000 # 限制能连上redis的最大客户端的数量

maxmemory <bytes> # redis配置最大的内存容量

maxmemory-policy noeviction # 内存到达上限之后的处理策略

1. volatile-lru:采用最近使用最少的淘汰策略,Redis将回收那些超时的(仅仅是超时的)键值对,也就是它只淘汰那些超时的键值对。
2. allkeys-lru:采用最近最少使用的淘汰策略,Redis将对所有(不仅仅是超时的)的键值对采用最近最少使用的淘汰策略。
3. volatile-lfu:采用最近最不常用的淘汰策略,所谓最近最不常用,也就是一定时期内被访问次数最少的。Redis将回收超时的键值对。
4. allkeys-lfu:采用最近最不常用的淘汰策略,Redis将对所有的键值对采用最近最不常用的淘汰策略。
5. volatile-random:采用随机淘汰策略删除超时的键值对。
6. allkeys-random:采用随机淘汰策略删除所有的键值对,这个策略不常用。
7. volatile-ttl:采用删除存活时间最短的键值对策略。
8. noeviction:不淘汰任何键值对,当内存满时,如果进行读操作,例如get命令,它将正常工作,而做写操作,它将返回错误,也就是说,当Redis采用这个策略内存达到最大的时候,它就只能读不能写了。

AOF (Append Only File)

appendonly no # 默认不开启, 因为默认使用rdb进行持久化,因为大部分情况下rdb完全够用。
appendfilename "appendonly.aof" # 持久化文件的名字

# appendfsync always # 每次修改都会同步,消耗性能
appendfsync everysec # 每秒同步一次,但是可能会丢失这一秒的数据
# appendfsync no # 不同步,相当于关闭了。