redis (5).事务处理以及持久化

1.redis中的事务处理。使用 multi和exec
//先使用multi开始事务的标记,事务块内的多条命令会按照先后顺序
//被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行。
redis 127.0.0.1:6379> multi
OK
redis 127.0.0.1:6379> set age 1
QUEUED
redis 127.0.0.1:6379> set name
QUEUED
redis 127.0.0.1:6379> set sex n
QUEUED
redis 127.0.0.1:6379> exec
1) OK
2) OK
3) OK
redis 127.0.0.1:6379> get age
"111"
redis 127.0.0.1:6379> get name
"yangyi"
redis 127.0.0.1:6379> get sex
"nan"
redis 127.0.0.1:6379>

2.取消一个事务。discard。清空事务队列和标记上下文。也就是回滚
redis 127.0.0.1:6379> multi
OK
redis 127.0.0.1:6379> set age 333
QUEUED
redis 127.0.0.1:6379> discard
OK
redis 127.0.0.1:6379> get age
"111"
redis 127.0.0.1:6379>

3.事务里面队列某个错误,不影响其他队列成员执行,不会回滚

4.redis持久化,将内存中的数据同步到硬盘
两种方式:
1)snapshotting(快照)默认方式。
2)Append-only file(缩写aof)的方式

第1种方式是将内存中的数据以快照的方式写入到二进制文件中,默认
文件名是dump.rdb.
在redis.conf中:
save 900 1  900秒内超过1海里key被修改,则发起快照保存
save 300 10
save 60 10000

第2种方式aof方式
由于第1种快照方式有一定的时间间隔,很有可能redis意外down
掉的话,最后一次的所有修改将会丢失。那么,aof会把每一次写命令通过write函数
追加到文件中,当redis重启时,会执行文件中的写命令来重建内存数据库

在redis.conf中
1)appendonly yes
2)# appendfsync always  #一直同步
appendfsync everysec #每秒同步
# appendfsync no #不同步
选择一个同步方式

重启redis ,
set age 3333
会发现多了一个文件appendonly.aof

5.虚拟内存的使用,将不常用的内容移动到磁盘中。
vm-enabled yes
vm-swap-file D:/phpweb/redis/redis.swap
vm-max-memory 100000
vm-page-size 32
vm-pages 134217728
vm-max-threads 4
保存退出重启redis

会提示说要加入配置really-use-vm yes ,那么加入好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值