Redis数据持久化
2017-01-16 12:12
246 查看
Redis是个支持持久化的内存数据库,redis需要经常将内存中的数据同步到磁盘来保证持久化。
1、RDB方式(Snapshotting[b]默认快照方式):[/b]
)配置:
[b])优点:[/b]
)该机制可以带来更高的数据安全性,即数据持久性。
)由于该机制对日志文件的写入操作采用的是append模式,因此在写入过程中即使出现宕机现象,也不会破坏日志文件中已经存在的内容。然而如果我们本次操作只是写入了一半数据就出现了系统崩溃问题,不用担心,在Redis下一次启动之前,我们可以通过redis-check-aof工具来帮助我们解决数据一致性的问题。
)如果日志过大,Redis可以自动启用rewrite机制。即Redis以append模式不断的将修改数据写入到老的磁盘文件中,同时Redis还会创建一个新的文件用于记录此期间有哪些修改命令被执行。因此在进行rewrite切换时可以更好的保证数据安全性。
) AOF包含一个格式清晰、易于理解的日志文件用于记录所有的修改操作。事实上,也可以通过该文件完成数据的重建。
[b]:缺点:[/b]
)对于相同数量的数据集而言,AOF文件通常要大于RDB文件,[b]持久化文件会变的越来越大。[/b]
) 根据同步策略的不同,AOF在运行效
aa01
率上往往会慢于RDB。
[b]3、其它[/b]
[b]虚拟内存方式和[b]diskstore方式。:(不建议,而且虚拟内存据说版本后弃用,diskstore也不常用)[/b][/b]
[b]相关配置[/b]
1、RDB方式(Snapshotting[b]默认快照方式):[/b]
)配置:
[b]:7000> config get dir
1) "dir"
2) "/usr/local/redis/db"
:7000>
[root@redis1 db]# ll
总用量 8
-rw-r--r-- 1 root root 146 2月 1 08:36
-rw-r--r-- 1 root root 74 2月 1 09:20
[root@redis1 db]#
[b])优点:[/b]
)该机制可以带来更高的数据安全性,即数据持久性。
)由于该机制对日志文件的写入操作采用的是append模式,因此在写入过程中即使出现宕机现象,也不会破坏日志文件中已经存在的内容。然而如果我们本次操作只是写入了一半数据就出现了系统崩溃问题,不用担心,在Redis下一次启动之前,我们可以通过redis-check-aof工具来帮助我们解决数据一致性的问题。
)如果日志过大,Redis可以自动启用rewrite机制。即Redis以append模式不断的将修改数据写入到老的磁盘文件中,同时Redis还会创建一个新的文件用于记录此期间有哪些修改命令被执行。因此在进行rewrite切换时可以更好的保证数据安全性。
) AOF包含一个格式清晰、易于理解的日志文件用于记录所有的修改操作。事实上,也可以通过该文件完成数据的重建。
[b]:缺点:[/b]
)对于相同数量的数据集而言,AOF文件通常要大于RDB文件,[b]持久化文件会变的越来越大。[/b]
) 根据同步策略的不同,AOF在运行效
aa01
率上往往会慢于RDB。
[b]3、其它[/b]
[b]虚拟内存方式和[b]diskstore方式。:(不建议,而且虚拟内存据说版本后弃用,diskstore也不常用)[/b][/b]
[b]相关配置[/b]
持久化文件会变的越来越大。
vm-enabled yes
#开启vm功能
vm-swap-file /tmp/
#交换出来的value保存的文件路径/tmp/
vm-max-memory 1000000
#redis使用的最大内存上限,超过上限后redis开始交换value到磁盘文件中
vm-page-size 32
#每个页面的大小32个字节
vm-pages 134217728
#最多使用在文件中使用多少页面,交换文件的大小 = vm-page-size * vm-pages
vm-max-threads 4
#用于执行value对象换入换出的工作线程数量,0表示不使用工作线程[/code]
总结:
1、Redis允许同时开启AOF和RDB,既保证了数据安全又使得进行备份等操作十分容易。重新启动Redis后Redis会使用AOF文件来恢复数据,因为AOF方式的持久化可能丢失的数据更少。
2、读写分离 通过复制可以实现读写分离以提高服务器的负载能力。在常见的场景中,读的频率大于写,当单机的Redis无法应付大量的读请求时(尤其是较耗资源的请求,比如SORT命令等)可以通过复制功能建立多个从数据库,主数据库只进行写操作,而从数据库负责读操作。
3、从数据库持久化 持久化通常相对比较耗时,为了提高性能,可以通过复制功能建立一个(或若干个)从数据库,并在从数据库中启用持久化,同时在主数据库禁用持久化。当从数据库崩溃时重启后主数据库会自动将数据同步过来,所以无需担心数据丢失。而当主数据库崩溃时,需要在从数据库中使用SLAVEOF
NO ONE命令将从数据库提升成主数据库继续服务,并在原来的主数据库启动后使用SLAVEOF命令将其设置成新的主数据库的从数据库,即可将数据同步回来。
如有不妥,欢迎指正!
相关文章推荐
- redis消息模式
- 通达OA清除redis缓存的命令,redis常用命令
- redis 安装启动及设置密码<windows>
- redis和memchache 的 一些区别,使用总结
- redis keys && scan
- Redis源码简要分析
- Redis持久化-RDB与AOF
- Redis latency monitoring framework(英文快读)
- Redis 源码阅读笔记1:zmalloc
- redis 进阶5-管道笔记
- redis进阶4-消息通知、订阅发布
- redis进阶3-排序
- redis进阶2-事务管理
- Redis教程之基础-五种数据基本操作
- Redis String、List、Set、Hash、ZSet常用命令
- Linux下搭建redis集群(简单例子)
- Linux下安装redis
- redis
- spring和redis集成
- Spring Boot系列教程十二:Spring boot集成Redis