天天看点

Redis(六)事务、持久化机制、发布与订阅模式

事务

redis的事务非常简单,使用方法如下,

–使用 multl 命令开启事务,然后进行设置,这时设置的数据都会放入队列里进行保存,

  • –set p1 1
  • –set p2 2
  • –set p3 3
  • –exec 使用该命令执行,最后把数据存储到redis中,
    • –使用discard方法取消事务
    • -incr 可以用来增加数值,

redis的事务不能保证同时成功或者失败进行提交或回滚,所以redis的事务目前还是比较简单的.

持久化机制

redis 是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到硬盘来保证持久化

redis持久化的两种方式

  • –1 snapshotting(快照)默认方式, 将内存中以快照的方式写入到二进制文件中,默认为dump.rdb可以通过配置设置自动快照持久化的方式,我们可以配置redis在n秒内如果超过m个key则修改就自动做快照

    snapshotting

    设置:
    • save 900 1 //900秒内如果超过一个key被修改,则发起快照保存
    • save 300 10 //300秒内如果超过10个key被小狗, 则发起快照保存
    • save 60 10000
  • –2.append-only file(编写aof)的方式(有点类似于oracle日志) 由于快照方式是在一定时间间隔做一次.所以可能发生redis意外down的情况就会丢失最后一次快照后的所有修改的数据、aof比快照方式有更好的持久化性, 是由于在使用aof时, redis会将每一个收到的写命令都通过write函数追加到命令中, 当rendis重新启动时会重新执行文件中保存的写命令来在内存中重建这个数据库的内容,这个文件在bin目录下,appendonly.aof不是立即写到硬盘上,可以通过配置文件修改强制写到硬盘中

    aof

    设置:
    • appendonly yes //启动aof持久化方式有三种修改方式
    • appendfsync always //收到写命令就写入到磁盘效率最慢,但是完全保证的持久化
    • appednfsync everysec //每秒写入磁盘一次,在性能和持久化的方面做了很好的折中
    • appendfysnc no //完全依赖os 性能最好 持久化没保证

发布与订阅模式

redis提供了简单的发布订阅功能

  • –subscribe [频道] 进行订阅监听
  • –publish [频道] [发布内容] 进行发布消息广播

继续阅读