redis持久化和用户认证--02

RDB和AOF持久化

1. RDB

redis持久化和用户认证--02

RDB:类似于快照的形式,当前内存里的状态持久化到硬盘里
优点:压缩格式/恢复速度快
缺点:不是实时的,可能会丢失数据,操作比较重

配置,配置文件
添加

save 900 1
save 300 10
save 60 10000
dbfilename redis.rdb
dir /data/redis_6379/

完整的配置文件

#以守护进程的方式启动
daemonize yes 

#绑定主机的ip
bind 127.0.0.1 192.168.80.51

#端口
port 6379

#pid和log文件的存放位置
pidfile /opt/redis_6379/pid/redis_6379.pid
logfile /opt/redis_6379/logs/redis_6379.log

#RDB持久化的配置,文件名称,含义,900秒一个改变就bgsave,300秒10个,60秒10000个,任意的一个
#条件满足就自动的保存,执行shutdown的时候会先bgsave在shutdown 
save 900 1
save 300 10
save 60 10000
dbfilename redis.rdb

#本地的数据库的目录
dir /data/redis_6379/

重启

redis-cli shutdown 
redis-server /opt/redis_6379/conf/redis_6379.conf

模拟数据

vim sj.sh
#!/bin/bash 
for i in {1..1000}
do
 redis-cli -h db01 set k_${i} v_${i}
 echo "ok"
done 

手动的执行,bgsave

db01:6379> BGSAVE
Background saving started

redis持久化和用户认证--02

我们shutdown自动会保存

db01:6379> shutdown 

redis持久化和用户认证--02

结论

1.没有配置save参数时,shutdown不会持久化保存
2.没有配置save参数时,可以手动执行bgsave触发持久化
3.在配置了save参数后,shutdown,kill,pkill都会自动触发bgsave
4.恢复的时候,rdb文件名要和配置文件里写的一样。
5.RDB高版本兼容低版本,低版本不兼容高版本

2. AOF

redis持久化和用户认证--02

AOF:类似于mysql的binlog,可以设置为每秒/每次操作以追加的形式持久化
优点:安全,最多损失1秒的数据,可读
缺点:文件比较大,恢复速度慢

配置

appendonly yes
appendfilename "redis.aof"
appendfsync everysec
#以守护进程的方式启动
daemonize yes 
#绑定主机的ip
bind 127.0.0.1 192.168.80.51
#端口
port 6379
#pid和log文件的存放位置
pidfile /opt/redis_6379/pid/redis_6379.pid
logfile /opt/redis_6379/logs/redis_6379.log
#本地的数据库的目录
dir /data/redis_6379/
#开启aof
appendonly yes
#文件保存的名称
appendfilename "redis.aof"
#每秒写一次
appendfsync everysec

重启:

redis-cli shutdown 
redis-server /opt/redis_6379/conf/redis_6379.conf

redis持久化和用户认证--02

当aof与rdb同时存在的时候,重启redis会先读取aof文件保存的为准

aof的重写机制

假若我们插入多个数据,最后我们么删除的一些
那么aof只会记录最后的结果,中间的过程不会记录多余的
减少记录的内容,恢复的时候会更加的快速

3. 用户认证

配置文件添加

requirepass yq

重启

redis-cli shutdown 
redis-server /opt/redis_6379/conf/redis_6379.conf

登录
第一种:AUTH yq

[root@db01 opt]# redis-cli
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> AUTH yq
OK
127.0.0.1:6379> get k_1
"v_1"
127.0.0.1:6379>

第二种 redis-cli -a yq

[root@db01 opt]# redis-cli -a yq
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> 

密码简单?

1.redis一般都部署在内网环境,默认是比较安全的环境
2.有同学担心密码写在配置文件里,开发不允许登陆到Linux服务器上,但是可以连接到redis,设个密码安全些
上一篇:Python解释器镜像源修改


下一篇:使用命令修改Python的PIP源