redis database
# The filename where to dump the DB dbfilename dump.rdb
save 60 5 [root@pakho bin]# rm -rf dump.rdb 127.0.0.1:6379> save OK 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 #会再次生成一个rdb文件 [root@pakho bin]# ls dump.rdb redis-benchmark redis-check-aof redis-check-rdb redis-cli redis_config redis-sentinel redis-server
127.0.0.1:6379> shutdown not connected> exit [root@pakho bin]# redis-server redis_config/redis.conf [root@pakho bin]# redis-cli -p 6379 127.0.0.1:6379> get k1 "v1" #重新启动后数据依旧存在
[root@pakho bin]# rm -rf dump.rdb 127.0.0.1:6379> flushall OK [root@pakho bin]# ls #立即生成一个rdb文件 dump.rdb redis-benchmark redis-check-aof redis-check-rdb redis-cli redis_config redis-sentinel redis-server
#查看需要存在的位置 127.0.0.1:6379> config get dir 1) "dir" 2) "/usr/local/bin" #如果在这个目录下存在dump.rdb文件,启动会自动恢复其中的数据
优点:
缺点
Append Only file
配置文件部分 ############################## APPEND ONLY MODE ############################### appendonly yes #默认不开启手动配置 appendfilename "appendonly.aof" # appendfsync always appendfsync everysec #每秒钟修改一次,只会丢失1秒钟的数据 # appendfsync no no-appendfsync-on-rewrite no #是否运用aof重写默认是no,保证数据的安全性 auto-aof-rewrite-percentage 100 #重写规则 auto-aof-rewrite-min-size 64mb #超过64mb 会开启一个新的文件进行重写
[root@pakho bin]# redis-server redis_config/redis.conf [root@pakho bin]# redis-cli -p 6379 127.0.0.1:6379> ping PONG [root@pakho bin]# ls #重启后会生成aof文件 appendonly.aof
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 [root@pakho bin]# vim appendonly.aof #查看内容,以日志级别记录我们的所有写操作
127.0.0.1:6379> shutdown not connected> exit
[root@pakho bin]# rm -rf dump.rdb #删除rdb文件保证环境正常 [root@pakho bin]# vim appendonly.aof qwertttyyuu #随机添加一串字符 [root@pakho bin]# redis-server redis_config/redis.conf #此时重新登录提示无法连接,因为刷新失败 [root@pakho bin]# redis-cli -p 6379 Could not connect to Redis at 127.0.0.1:6379: Connection refused
redis-check-aof --fix
[root@pakho bin]# redis-check-aof --fix appendonly.aof 0x ba: Expected prefix '*', got: 'q' AOF analyzed: size=199, ok_up_to=186, ok_up_to_line=44, diff=13 This will shrink the AOF from 199 bytes, with 13 bytes, to 186 bytes Continue? [y/N]: y Successfully truncated AOF
#再次启动,一切正常 [root@pakho bin]# redis-server redis_config/redis.conf [root@pakho bin]# redis-cli -p 6379 127.0.0.1:6379> ping PONG 127.0.0.1:6379> get k1 "v1"
优点
缺点