启动的时候,就通过配置文件来启动。
大小写不敏感
可以包含其他配置文件
网络
绑定的IP
即允许哪些IP可以访问,默认是本机可以访问。
保护模式
protected-mode yes
端口
port 6379
General
daemonize yes # 是否以守护进程的方式运行,默认为no,windows不支持no
如果以后台模式运行,就需要一个进程文件。
# 日志级别
# Specify the server verbosity level.
# This can be one of:
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged)
loglevel notice
logfile "" # 日志的文件位置名
databases 16 # 默认16个数据库
快照
Redis是内存数据库,断电即失,所以需要持久化
持久化,在规定的时间内,执行了多少次操作,则会持久化到文件。
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 # 不同步,相当于关闭了。