Redis
redis提供了RDB持久化的功能,这个功能可以将redis在内存中的状态数据保存到磁盘
触发机制:
配置文件:s21_rdb.conf
daemonize yesport 6379logfile /data/6379/redis.logdir /data/6379 #定义持久化文件存储位置/data/6379dbfilename s21redis.rdb #rdb持久化文件s21redis.rdbbind 127.0.0.1 #redis绑定地址#save 900 1 ##save 200 10 #在200秒中内,超过10个修改类的操作save 20 2 #
daemonize yes
port 6379
logfile /data/6379/redis.log
dir /data/6379 #定义持久化文件存储位置/data/6379
dbfilename s21redis.rdb #rdb持久化文件s21redis.rdb
bind 127.0.0.1 #redis绑定地址
#save 900 1 #
#save 200 10 #在200秒中内,超过10个修改类的操作
save 20 2 #
[root@xujunk s21redis]#mkdir -p /data/6379/
[root@xujunk s21redis]#redis-server s21_rdb.conf查看启动状态:[root@xujunk s21redis]#ps -ef |grep redis"""root 22057 1 0 17:14 ? 00:00:00 redis-server 127.0.0.1:6379"""
[root@xujunk s21redis]#redis-server s21_rdb.conf
查看启动状态:
[root@xujunk s21redis]#ps -ef |grep redis
"""
root 22057 1 0 17:14 ? 00:00:00 redis-server 127.0.0.1:6379
[root@xujunk redis-4.0.10]#redis-cli#咱们设置save 为20秒内 操作2次。所以这里最少操作2次[root@xujunk redis-4.0.10]#set name haha[root@xujunk redis-4.0.10]#set name2 haha
[root@xujunk redis-4.0.10]#redis-cli
#咱们设置save 为20秒内 操作2次。所以这里最少操作2次
[root@xujunk redis-4.0.10]#set name haha
[root@xujunk redis-4.0.10]#set name2 haha
[root@xujunk s21redis]#ls /data/6379redis.log s21redis.rdb#此时生成2个文件。
[root@xujunk s21redis]#ls /data/6379
redis.log s21redis.rdb
#此时生成2个文件。
pkill -9 redis
[root@xujunk s21redis]#redis-server s21_rdb.conf[root@xujunk s21redis]#redis-cli127.0.0.1:6379> keys *1) "name2"2) "name3"#此时数据达到持久化存储
[root@xujunk s21redis]#redis-cli
127.0.0.1:6379> keys *
1) "name2"
2) "name3"
#此时数据达到持久化存储
AOF机制,将你的修改类操作命令,追加到日志文件中
追加文件:用在文件末尾追加记录的方式,对Redis写入的数据,依次进行持久化,所以它的持久化是更加安全的。
此外,它还提供一个用appendfsync选项设置fsync的策略,确保写入的数据都落到磁盘中,具体选项包括always,everysec,no等。
修改aof 配置文件添加如下参数 ,核心功能参数是:
appendonly yesappendfsync always 总是修改类的操作 everysec 每秒做一次持久化 no 依赖于系统自带的缓存大小机制
appendonly yes
appendfsync always 总是修改类的操作
everysec 每秒做一次持久化
no 依赖于系统自带的缓存大小机制
AOF存储示例
创建配置文件并且编辑配置:
[root@xujunk s21redis]#touch s21_aof.conf[root@xujunk s21redis]#vim s21_aof.conf daemonize yes port 6379 dir /data/6379 appendonly yes appendfsync everysec logfile /data/6379/redis.log
[root@xujunk s21redis]#touch s21_aof.conf
[root@xujunk s21redis]#vim s21_aof.conf
dir /data/6379
appendfsync everysec
以自己配置文件 启动redis
[root@xujunk 6379]#redis-server /opt/s21redis/s21_aof.conf [root@xujunk 6379]#lsappendonly.aof redis.log#此时6379目录生成2个文件。实时存储#实时监控存储数据文件[root@xujunk 6379]#tail -f appendonly.aof#另起一个窗口启动客户端,操作redis[root@xujunk s21redis]#redis-cli127.0.0.1:6379> set name "www"OK#监控客户端实时输出存入结果:*2$6SELECT$10*3$3set$4name$3www
[root@xujunk 6379]#redis-server /opt/s21redis/s21_aof.conf
[root@xujunk 6379]#ls
appendonly.aof redis.log
#此时6379目录生成2个文件。实时存储
#实时监控存储数据文件
[root@xujunk 6379]#tail -f appendonly.aof
#另起一个窗口启动客户端,操作redis
127.0.0.1:6379> set name "www"
OK
#监控客户端实时输出存入结果:
*2
$6
SELECT
$1
0
*3
$3
set
$4
name
www
redis 持久化方式有哪些?有什么区别?
rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能aof:以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog
rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能
aof:以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog
本文在redis4.0中,通过config set命令,达到不重启redis服务,从RDB持久化切换为AOF
查看redis版本
[root@xujunk s21redis]#redis-server -vRedis server v=4.0.10 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=f4e8cdb9b08f1cb0
[root@xujunk s21redis]#redis-server -v
Redis server v=4.0.10 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=f4e8cdb9b08f1cb0
rdb模式下的redis持久化,不重启切换为 aof模式
手动操作:
redis内切换:config set appendonly yesconfig set save ""
redis内切换:
config set appendonly yes
config set save ""
环境准备:更改s21_rdb.conf配置
#准备rdb配置文件 daemonize yes port 6379 logfile /data/6379/redis.log dir /data/6379 #定义持久化文件存储位置/data/6379 #dbfilename s21redis.rdb #rdb持久化文件s21redis.rdb bind 127.0.0.1 #redis绑定地址 #save 900 1 # #save 200 10 #在200秒中内,超过10个修改类的操作 save 20 2 appendonly yes appendfsync always
#准备rdb配置文件
#dbfilename s21redis.rdb #rdb持久化文件s21redis.rdb
save 20 2
appendfsync always
删除rdb保存文件
[root@xujunk 6379]#rm -rf dump.rdb
重启redis server端部
[root@xujunk 6379]#redis-server /opt/s21redis/s21_rdb.conf
启动客户端
[root@xujunk 6379]#redis-cli127.0.0.1:6379> keys *1) "name"#在没有重启redis-server端实现RDB---->AOF(切换)
[root@xujunk 6379]#redis-cli
1) "name"
#在没有重启redis-server端实现RDB---->AOF(切换)
注意想要永久切换为aof,还得修改配置文件方可
原文链接:http://www.cnblogs.com/xujunkai/p/11563672.html
本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728