当前位置: 首页 > news >正文

深圳罗湖建网站wordpress 安装500

深圳罗湖建网站,wordpress 安装500,太原适合网站设计地址,北京网站制作公司飞沐介绍 Redis通过MULTI、EXEC、WATCH等命令来实现事务功能。 事务提供了一种将多个命令请求打包#xff0c;然后一次性、按照顺序地执行多个命令的机制#xff0c;并且在事务执行期间#xff0c;服务器不会因为其他客户端请求而中断事务的执行功能#xff0c;他会将事务中的…介绍 Redis通过MULTI、EXEC、WATCH等命令来实现事务功能。 事务提供了一种将多个命令请求打包然后一次性、按照顺序地执行多个命令的机制并且在事务执行期间服务器不会因为其他客户端请求而中断事务的执行功能他会将事务中的所有命令都执行完毕才会去处理客户端的请求 通过MULTI和EXEC这两个命令就能完成一个简单的事务 MULTI开启事务的标志EXEC事务结束的标志 127.0.0.1:6379 set name zhangsan QUEUED 127.0.0.1:6379 set age 18 QUEUED 127.0.0.1:6379 get name QUEUED 127.0.0.1:6379 get age QUEUED 127.0.0.1:6379 exec 1) OK 2) OK 3) zhangsan 4) 18事务执行的原理 一个事务从开始到结束通常会经历以下三个阶段 事务开始命令入队事务执行 1. 事务开始 MULTI命令的执行 标志着事务的开始 MULTI命令将客户端从非事务状态切换到事务状态主要是通过修改客户端的一个状态标志位来完成的 2. 命令入队 当一个客户端处于非事务状态时客户端发送的命令会立即被服务器执行 但是当一个客户端切换到事务状态之后服务器就会根据发来的不同命令执行不同的操作 如果是客户端发送的MULTI、DISCARD、WATCH、EXEC四个命令中的一个时服务器会立即执行这个命令除了以上四个命令之外的所有命令服务器并不会立即执行这个命令而是将这个命令放入到一个事务队列里向客户端返回QUEUED回复 3. 事务队列 处于事务状态的客户端在服务端都会有一个事务队列这个队列中按照先进先出的方式保存了客户端的命令同时还会有一个变量来表示队列的长度即命令的数量。 4. 执行事务 当一个处于事务状态的客户端发送EXEC命令时这个EXEC命令将立即被服务器执行。 服务器会遍历这个客户端的事务队列顺序执行队列中的所有命令最后将执行的结果全部返回给客户端这个过程是不会被打断的 也就是说客户端只有在发送了EXEC命令后才会真正得到前面那些命令的结果。 WATCH命令 WATCH命令是一个乐观锁他可以在EXEC命令执行之前监视任意数量的key并在EXEC命令执行时会检查这些key是否已经被修改过了如果是则服务端将拒绝执行这个事务并向客户端返回代表失败的标识。 即WATCH命令会监视指定的key如果在本客户端事务的过程中其他客户端修改了这个key对应的value那么在本客户端执行EXEC时WATCH就会发现先检测有没有被修改过如果是则服务端拒绝执行这个客户端的事务 WATCH命令必须在MULTI和EXEC之外不能在这两者之间 正确示例 127.0.0.1:6379 WATCH name OK 127.0.0.1:6379 MULTI OK 127.0.0.1:6379 get name QUEUED 127.0.0.1:6379 get age QUEUED 127.0.0.1:6379 exec (nil)事务的ACID 在关系型数据库中事务有ACID的特性 原子性一组命令要么全部执行要么全部不执行一致性事务开启前后完成后数据是一致的隔离性一个数据在不同事务中是如何表现的持久性数据是持久的不会消失的 在Redis中也能说满足这四个特征并不是完全满足。 原子性 对于关系型数据库来说事务中的多个操作当做一个整体要么全部执行要么全部不执行。 对于Redis事务来说事务队列中的命令要么就是全部要执行要么一个都不执行因此Redis是具有原子性的。 当客户端的一条命令是语法错误的那么在入事务队列时就会报错整个事务队列中的命令就不会执行 Redis事务与关系型数据库事务的最大区别是Redis事务不支持回滚机制当服务端执行事务队列里的命令时一条命令出现了错误下面的命令依然会被执行下去直到整个事务队列执行完成 一致性 “一致”指的是数据在事务前后数据是正确的符合业务逻辑及数据库本身的规范 我说一下数据可能会不一致的情况 命令入队错误一个客户端事务的命令在入队时若此命令非法不存在或语法错误则Redis拒绝执行这个客户端端的事务。对于这个事务来说事务执行前后的数据是一致的。出队错误服务端在执行事务队列中的命令时此时发生了错误由于不存在回滚机制同时事务也不能被中断因此下面的命令还是会继续执行此时事务执行完成后可能会导致数据不一致性。服务器宕机 服务器并没有开启持久化机制那么重启后内存中的数据是空的这么来看数据是一致的。如果是RDB持久化模式下那么在重启时会恢复数据从之前的一致性恢复到另一个一致性状态也算是一致的。如果是AOF持久化模式下那么在重启时同样会恢复数据此时的数据也是一个一致性状态 隔离性 因为Redis使用的是单线程的方式来执行事务同一时刻只有一个事务在执行同时事务执行期间不会被打断因此事务之间是具有隔离性的 持久性 Redis事务的持久性是由Redis的持久化机制来来保障的。 当服务器没有开启持久化模式那么事务不具有持久性一旦宕机数据就会消失当服务器在RDB持久化模式下服务器只会在特定条件被满足时才会执行BGSAVE命令来持久化数据保存的是某一时刻的数据并且异步BGSAVE下不能保证最新数据第一时间被持久化因此RDB模式下事务不具有持久性当服务器在AOF持久化同步追加模式下服务器每执行一条命令就会将这个命令追加到AOF日志中因此在同步AOF模式下事务具有持久性。当处于AOF异步追加模式下并不能保证最新的命令被立即追加到AOF日志中因此在异步AOF模式下事务不具有持久性
http://www.w-s-a.com/news/667437/

相关文章:

  • 固始城乡建设局的网站怎么打不开了上海建设网站
  • 关于加强网站信息建设的通知3d网站开发成本
  • 网站建设实训过程报告成品网站1688入口的功能介绍
  • 网站定制开发需要什么资质国外设计灵感网站
  • 搜搜网站收录广告设计与制作模板图片
  • 江苏省建设监理协会网站汕头网站建设方案优化
  • 中国风网站配色方案正规少儿编程排名
  • 兼职做网站的软件wordpress赞的代码
  • 销售网站的技巧四博互联做的网站
  • 网站建设 图片问题小程序免费制作平台凡科网页版
  • 猪八戒网做网站怎么样网站建设 客户同程
  • 西安网站建设那家强网站建设方案 报价
  • 销售网站建设考核指标网站建设价格组成
  • 网站302跳转网站建设完成后 下一步做什么
  • 赣州制作网站企业硬件开发用什么语言
  • 新网站如何被网站收录百度排名优化软件
  • html网站简易模板国内买机票的网站建设
  • 百度关键词分析工具百度seo排名软
  • 自己怎样做免费网站ueditor 上传wordpress
  • 深圳高端网站开发网站建设公司销售技巧
  • 网站建设的优势是什么意思可拖动网站
  • 建设什么企业网站网站微信认证
  • 网站开发的平台成都有哪些好玩的
  • 上海金瑞建设集团网站怎么创建免费网页
  • 柳州做网站设计的公司制作网站软件下载
  • 湖南seo网站开发苏州网络营销及网站推广
  • 如何发布自己做的网站郑州网站建设定制开发
  • 重庆网站商城宁波网络公司联系方式
  • 个人网站建设实验心得seo课程简介
  • 免费自助建站系统下载推广app网站