码迷,mamicode.com
首页 > 其他好文 > 详细

redis 复制,持久化,事务

时间:2017-08-23 10:35:03      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:之间   时间设置   取消   ott   erro   --   multi   这一   资源   

持久化(数据存储到硬盘)

  • 有两种方式:快照 snapshotting追加文件AOF、
  • 快照

  1、执行 快照 的两种方式(命令)

   BGSAVE:redis调用fork来创建一个子进程将快照写入硬盘,父进程继续处理请求;

   (子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的拷贝。父子进程之间不共享这些数据,但共享代码空间)

   fork子进程,会耗费内存,尤其是数据量比较大(如几十GB),BGSAVE会导致系统停顿;

   SAVE:直接创建快照,完毕之前不会响应任何请求,会阻塞响应;    

  2、当系统发生崩溃,快照持久化有可能会丢失一部分数据,即上次快照之后的;

  • AOF

  1、配置 appendonly yes ,打开AOF

  2、同步频率,指的是强制写入磁盘的时间设置, always(每个命令),everysec(每秒),no(让操作系统来决定);

 

 

复制(服务器之间数据拷贝)

 

 

 

事务(pipelining 流水线)

  • 以  MULTI开始事务  ------传入多个命令--------- 以EXEC提交执行;

1、命令没有分次提交到服务器,而会成批量的提交到服务器;

2、成批量的提交可以减少通信,提高执行效率;

3、只有在EXEC命令提交后,事务的命令才会执行,这与关系数据库的实现是有区别的,在关系数据库中,多个操作是分开执行的,前置的操作对后置的操作是可见的;

  • WATCH、UNWATCH、DISCARD 命令

1、WATCH命令 可以监视 的替换、更新、删除等操作,它只能监视到 这一层级

2、WATCH可以看作是乐观锁,它不会锁定数据不让改变,它会在数据改变是 抛出异常(redis.exceptions.WatchError) 让程序做相应的处理;

3、UNWATCH 取消WATCH命令对所有key的监视;

4、DISCARD 取消事务,取消WATCH命令,并清空所有已入队的命令;

  • 非事务型流水线

1、pipe还可用来批量提交命令提高执行效率

redis 复制,持久化,事务

标签:之间   时间设置   取消   ott   erro   --   multi   这一   资源   

原文地址:http://www.cnblogs.com/joyvon/p/7414432.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!