记录生活中的点点滴滴

0%

redis学习3:配置文件详解

这一篇文章写一下 redis 的配置文件,内容不多,只是记录一下。

redis配置文件,就是我们当时安装redis时,从解压缩的文件夹中redis.conf,我们还把它移到了redis安装的bin目录下面:

下面我们从头到尾写一下重要的配置内容。

单位

1、配置单位unit对大小写不敏感

包含

就像我们学习spring时的import include

网络

1
2
3
bind 127.0.0.1 # 绑定的ip
protected-mode yes # 保护模式
port 6379 # 端口设置

通用GENERAL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
daemonize yes # 以守护进程的方式运行,默认是no,我们要手动设置成yes
pidfile /var/run/redis_6379.pid # 如果以后台的方式运行,我们就需要指定一个pid文件

# 日志
# 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个数据库
always-show-logo yes # 是否总是显示LOGO

快照

持久化,在规定化的时间内,执行了多少次操作,则会持久化到文件 .rdb .aof

redis 是内存数据库,如果没有持久化,那么数据会断电丢失!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 如果900s内,至少有1个key进行了修改,我们就会进行持久化操作
save 900 1
# 如果300s内,至少有10个key进行了修改,我们就会进行持久化操作
save 300 10
# 如果60s内,至少有10000个key进行了修改,我们就会进行持久化操作
save 60 10000

stop-writes-on-bgsave-error yes # 持久化如果出错,是否还需要继续工作

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

rdbchecksum yes # 保存rdb文件的时候,进行错误的检查校验

dir ./ # rdb 文件保存的目录

REPLICATION 复制,后面主从复制再说

SECURITY 安全

可以在这里设置 redis 的密码,默认没有密码!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> config get requirepass # 查看密码,默认没有
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass "123456" # 设置redis的密码
OK
127.0.0.1:6379> config get requirepass # 再执行命令就不能执行了
(error) NOAUTH Authentication required.
127.0.0.1:6379> ping # 也不能ping通了
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456 # 登录
OK
127.0.0.1:6379> config get requirepass # 登录成功之后就可以了
1) "requirepass"
2) "123456"
127.0.0.1:6379>

CLIENTS 客户端的一些限制

1
maxclients 10000 # 设置能连接上redis的最大客户端数量

MEMORY MANAGEMENT 内存达到上限之后的处理策略

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
maxmemory <bytes> # redis最大内存容量

571 # volatile-lru -> Evict using approximated LRU among the keys with an expire set.
572 # allkeys-lru -> Evict any key using approximated LRU.
573 # volatile-lfu -> Evict using approximated LFU among the keys with an expire set.
574 # allkeys-lfu -> Evict any key using approximated LFU.
575 # volatile-random -> Remove a random key among the ones with an expire set.
576 # allkeys-random -> Remove a random key, any key.
577 # volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
578 # noeviction -> Don't evict anything, just return an error on write operations.

maxmemory-policy noeviction # redis内存达到上限的处理策略
1、volatile-lru:只对设置了过期时间的key进行LRU
2、allkeys-lru:删除LRU算法的key
3、volatile-random:随机删除即将过期的key
4、allkeys-random:随机删除
5、volatile-ttl:删除即将过期的
6、noeviction:永不过期,返回错误

APPEND ONLY MODE aof配置

1
2
3
4
5
6
appendonly no # 默认是不开启aof模式的,默认是使用rdb方式持久化的,大部分情况下rdb完全够用
appendfilename "appendonly.aof" # 持久化文件的名字

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

具体的配置,后面的 redis 持久化再详解。