您的位置:首页 > 数据库 > Redis

Redis之简单事务、持久化机制

2018-03-27 16:53 411 查看
一、redis的事务非常简单(简单了解)
       使用方法如下:首先是使用:multi 命令打开事务,然后进行设置,这时设置的数据都会放入队列里进行保存;
                               最后使用:exec 命令执行,把数据依此存储到redis中;
                               使用 :discard 命令取消事务。
                注:redis的事务不能保证同时成功或失败进行提交或回滚,所以redis的事务目前还是比较简单的。

二、redis持久化机制
    redis是一个支持持久化的内存数据库,也就是说redis需要经常给内存中的数据同步到硬盘来保证持久化。redis有两种持久化方式:

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

            snapshotting设置:save 900 1 #900秒内如果超过1个key被修改,则发起快照保存;

                                            save 300 10 #300秒内如果超过10个key被修改,则发起快照保存;

                                            save 60 10000

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

            aof设置:
                        将appendonly no 改为:appendonly yes #启动aof
                     (了解)持久化方式有三种:A、appendfsync always(收到写命令就立即写入到磁盘,效率最慢,但是保证完全的持久化);B、appendfsync everysec(每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中);C、appendfsync no(完全依赖os,性能最好,持久化没有保证);

三、发布与订阅
        命令:subscribe【频道名】;#进行订阅监听;

        命令:publish【频道名】【发布内容】;#进行消息发布;

        

        

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: