redis.conf配置文件+持久化 必知必会


在启动Redis服务端的时候,我们会使用配置文件进行启动。
在这里插入图片描述
接下来我们就来研究一下Redis的配置文件redis.conf都配置了啥。

一、指定内存大小的单位

在这里插入图片描述
注:单位不区分大小写,所以1GB 1Gb 1gB都是一样的。

二、包含其他配置文件

在这里插入图片描述

三、网络配置

在这里插入图片描述
使用bind指令可以绑定一个或多个IP地址。

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

四、通用配置

daemonize yes			 # 以守护进程的方式运行,默认是 no,我们需要自己开启为yes
pidfile /var/run/redis_6379.pid # 如果以后台的方式运行,我们就需要指定一个 pid 文件! 
# 日志 # Specify the server verbosity level. # This can be one of:debug,verbose,notice
loglevel notice			 #指定日志的等级,warning
logfile "" 				 # 日志的文件位置名 
databases 16 			 # 数据库的数量,默认是 16 个数据库 
always-show-logo yes 	 # 是否总是显示LOGO

五、持久化配置

持久化, 在规定的时间内,执行了多少次操作,则会持久化到文件 .rdb. aof
redis 是内存数据库,如果没有持久化,那么数据断电即失!

# 如果900s内,如果至少有一个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 文件保存的目录!

1、RDB(Redis DataBase)

在这里插入图片描述
Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程 都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的。 这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那 RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。我们默认的就是 RDB,一般情况下不需要修改这个配置!

(1)案例

在这里插入图片描述
在这里插入图片描述

127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> set k3 v3
OK
127.0.0.1:6379> set k4 v4
OK
127.0.0.1:6379> set k5 v5
OK
127.0.0.1:6379> exit
[root@localhost bin]# ll
总用量 38104
-rw-r--r--. 1 root root     104 6月   9 17:36 dump.rdb
drwxr-xr-x. 2 root root      24 6月   9 17:34 myconf
-rwxr-xr-x. 1 root root    2363 4月  10 13:55 pcre-config
-rwxr-xr-x. 1 root root  100048 4月  10 13:55 pcregrep
-rwxr-xr-x. 1 root root  197512 4月  10 13:55 pcretest
-rwxr-xr-x. 1 root root 4739936 6月   4 09:25 redis-benchmark
-rwxr-xr-x. 1 root root 9634576 6月   4 09:25 redis-check-aof
-rwxr-xr-x. 1 root root 9634576 6月   4 09:25 redis-check-rdb
-rwxr-xr-x. 1 root root 5050352 6月   4 09:25 redis-cli
lrwxrwxrwx. 1 root root      12 6月   4 09:25 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 9634576 6月   4 09:25 redis-server
[root@localhost bin]# redis-cli
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> keys *
1) "k4"
2) "k2"
3) "k3"
4) "k1"
5) "k5"

(2)触发机制

1、save的规则满足的情况下,会自动触发rdb规则
2、执行 flushall 命令,也会触发rdb规则
3、退出redis(shutdown命令),也会产生 rdb 文件!

(3)优缺点

优点
1、适合大规模的数据恢复
2、对数据的完整性要求不高
缺点:
1、需要一定的时间间隔进程操作!如果redis意外宕机了,这个最后一次修改数据就没有的了
2、fork进程的时候,会占用一定的内存空间

2、AOF(Append Only File)

在这里插入图片描述
以日志的形式来记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。

(1)案例

默认appendonly的值为no,需要修改为yes。
在这里插入图片描述
在这里插入图片描述
重新启动Redis就会生效,生成appendonly.aof

在这里插入图片描述
我们故意破坏appendonly.aof文件后,重新启动Redis将会报错。
在这里插入图片描述
使用redis-check-aof进行修复。
在这里插入图片描述
再次重启Redis成功!
在这里插入图片描述

(2)优缺点

优点:
1、每一次修改都同步,文件的完整会更加好
2、每秒同步一次,可能会丢失一秒的数据
3、从不同步,效率最高的
缺点:
1、相对于数据文件来说,aof远远大于 rdb,修复的速度也比 rdb慢
2、aof 运行效率也要比 rdb 慢,所以我们redis默认的配置就是rdb持久化

六、安全配置

在这里插入图片描述
我们既可以在配置文件中通过requirepass指令来设置密码,比如requirepass 123456,同时也可以使用命令行操作来设置密码。
在这里插入图片描述
如果有如下提示,则需要使用命令auth 密码来进行授权。
在这里插入图片描述

七、限制客户端配置

maxclients 10000 		# 设置能连接上redis的最大客户端的数量 
maxmemory <bytes>		 # redis 配置最大的内存容量 
maxmemory-policy noeviction 	# 内存到达上限之后的处理策略 
1、volatile-lru:		只对设置了过期时间的key进行LRU(默认值) 
2、allkeys-lru : 		删除lru算法的key 
3、volatile-random:		随机删除即将过期key 
4、allkeys-random:		随机删除 
5、volatile-ttl : 		删除即将过期的 
6、noeviction : 		永不过期,返回错误 

八、APPEND ONLY 模式 aof配置

appendonly no 		# 默认是不开启aof模式的,默认是使用rdb方式持久化的,在大部分所有的情况下, rdb完全够用! 
appendfilename "appendonly.aof" 	# 持久化的文件的名字 
# appendfsync always 				# 每次修改都会 sync。消耗性能 
appendfsync everysec 				# 每秒执行一次 sync,可能会丢失这1s的数据! 
# appendfsync no 					# 不执行 sync,这个时候操作系统自己同步数据,速度最快!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值