文章参考
http://www.cnblogs.com/xingzc/p/5988080.html
这位博主写的很详细了
下边直接记录操作:
rdb方式
代码:
@ApiOperation(value = "rdb方式持久化,同步保存,生成dump.rdb 文件")
@RequestMapping(value = "/saveRdb",method = {RequestMethod.POST})
public void saveRdb(){
Jedis jedis=new Jedis("127.0.0.1",6379);
for (int i = 0; i <1000; i++) {
jedis.set("key"+i, "Hello"+i);
System.out.println("设置key"+i+"的数据到redis");
try {
Thread.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//执行保存,会在服务器下生成一个dump.rdb数据库文件
jedis.save();
jedis.close();
System.out.println("写入完成");
}
在 redis的安装路径下
config文件里设置 rdb的方式:
- save “” 这个时默认注释掉的,关闭rdb
- save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
- save 300 10 #300秒内容如超过10个key被修改,则发起快照保存
- save 60 10000
- jedis.save() 手动保存备份
生成 filename dump.rpd 文件 ,默认名字就是 dump.rpd
路径 dir ./,这个在配置文件里边可以重新配置
执行 命令查看 dir的路径:
- config get dir
路径下的 dump.rdb 就是缓存持久化文件,是二进制存储的
服务器重启的时候,会加载里边的数据。
aof 方式
aop 的默认文件名: appendonly.aof
开启步骤:
-
appendonly yes //启用aof持久化方式
-
appendfsync always //每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用
-
appendfsync everysec //每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐
-
appendfsync no //完全依赖os,性能最好,持久化没保证
命令行输入命令:
- redis-cli config set appendonly yes 开启aof
如果缺少这一步可能生成不了 appendonly.aof文件