海东高端网站建设物联卡官方免费申请入口

pingmian/2026/1/21 3:41:31/文章来源:
海东高端网站建设,物联卡官方免费申请入口,欧米茄女士手表网站,建设监督网站原创 哪吒 哪吒编程 2023-09-07 08:03 发表于辽宁 收录于合集#Redis11个 #xff08;给哪吒编程加星标#xff0c;提高Java技能#xff09; 大家好#xff0c;我是哪吒。 在前几篇文章中#xff0c;提到了Redis实现排行榜、Redis数据缓存策略#xff0c;让我们对Redis…原创 哪吒 哪吒编程 2023-09-07 08:03 发表于辽宁 收录于合集#Redis11个 给哪吒编程加星标提高Java技能 大家好我是哪吒。 在前几篇文章中提到了Redis实现排行榜、Redis数据缓存策略让我们对Redis有了进一步的认识今天继续进修了解一下Redis在下单时是如何保证数据一致性的 例如在高并发访问下可能会有多个请求同时读取同一份缓存数据然后进行写操作这就容易产生数据竞争的情况。同时读写操作并不是原子性操作可能在读取数据的时候缓存已经被其他请求更新掉从而导致数据不一致。 为了解决Redis缓存的数据一致性问题我们需要做到以下两点 保证所有请求都是读取最新的数据 保证所有更新操作都是互斥的并且按照请求的顺序执行。 在一个在线商城系统中面临一个重要的问题如何在订单支付过程中保证数据的一致性并且如何优化支付操作的性能。 1、订单支付需求 在用户下单后需要执行订单支付操作确保支付和订单状态的一致性。 2、数据一致性要求 支付成功后必须将订单状态更新为已支付以保持数据的一致性。 3、高并发支付 在高并发的情况下需要确保订单支付的性能和数据一致性。 为了解决以上问题我们可以使用Redis提供的事务和管道机制。 一、Redis事务 1、什么是Redis事务 在Redis中事务是一组命令的集合可以在一个单独的流程中执行以保证这些命令的原子性、一致性、隔离性和持久性。 1事务概述 Redis事务由以下四个关键命令进行管理 命令描述MULTI开启事务标记事务块的开始。EXEC执行事务中的所有命令。DISCARD取消事务放弃所有已经入队的命令。WATCH监视一个或多个键用于乐观锁。 2Redis的事务特性 Redis事务具有以下关键特性 事务特性描述原子性事务中的所有命令要么全部执行要么全部不执行。这确保了在事务执行期间不会发生部分命令执行成功而部分命令执行失败的情况。一致性事务中的命令会按照被添加的顺序执行不会被其他客户端的命令打断。这保证了事务中的操作按照期望的顺序执行不会受到并发操作的影响。隔离性在事务执行期间事务会被隔离不会受到其他事务的影响。即使有其他并发事务在执行事务中的操作也不会被其他事务看到直到事务被执行提交。持久性事务执行结束后对数据库的修改将被持久化到磁盘上。这确保了事务中的操作不会因为系统故障而丢失从而保证了数据的持久性。 以上是Redis事务的基本概念和特性它们保证了在Redis中执行的事务是可靠的、具备一致性的操作集合。 上图形表示了Redis事务的关键特性之间的相互关系。这些特性相互支持共同确保了Redis事务的可靠性和一致性。 原子性保证了事务中的操作要么全部成功要么全部失败。 一致性保证了事务中的操作按照特定的顺序执行不会受到其他操作的干扰。 隔离性确保了事务在执行期间与其他事务相互隔离互不干扰。 持久性确保了事务执行后的修改会被持久保存不会因系统故障而丢失。这些特性一起构成了Redis事务的可靠性和稳定性的基础。 2、使用Redis事务 1开始和提交事务 在Redis中使用事务需要遵循以下步骤 使用MULTI命令开启事务。 执行需要在事务中执行的命令。 使用EXEC命令提交事务执行事务中的所有命令。 下面是一个使用Java代码示例的详细步骤 // 创建与Redis服务器的连接 Jedis jedis  new Jedis(localhost, 6379);// 开启事务 Transaction transaction  jedis.multi();// 执行事务中的命令 transaction.set(key1, value1); transaction.set(key2, value2);// 提交事务并获取执行结果 ListObject results  transaction.exec();在上面的示例中transaction.set(key1, value1) 和 transaction.set(key2, value2) 这两个命令会被添加到事务队列中当transaction.exec()被调用时事务中的所有命令会被一起执行。如果在MULTI和EXEC之间有错误发生事务会被取消命令不会执行。 2事务命令 在事务中您可以使用常规的Redis命令例如SET、GET、HSET、ZADD等等。这些命令会被添加到事务队列中直到执行EXEC命令。 3事务示例 以下是使用Java代码示例来演示在事务中执行常见的Redis命令 import redis.clients.jedis.Jedis; import redis.clients.jedis.Transaction;public class RedisTransactionCommandsExample {public static void main(String[] args) {Jedis jedis  new Jedis(localhost, 6379);// 开启事务Transaction transaction  jedis.multi();// 执行事务中的命令transaction.set(name, Alice);transaction.hset(user:1, name, Bob);transaction.zadd(scores, 100, Alice);transaction.zadd(scores, 200, Bob);// 提交事务并获取执行结果ListObject results  transaction.exec();// 打印执行结果for (Object result : results) {System.out.println(Result:   result);}// 关闭连接jedis.close();} } 在上述示例中使用了SET、HSET和ZADD命令这些命令被添加到了事务队列中。当执行transaction.exec()时事务中的所有命令会被一起执行。这里的示例是简单的演示您可以根据需要添加更多的命令来构建更复杂的事务。 二、Redis管道 1、什么是Redis管道 Redis管道Pipeline是一种优化Redis操作的技术它允许在单次通信中发送多个命令到Redis服务器从而显著减少了通信开销提高了性能。 管道可以将多个命令一次性发送给服务器而不需要等待每个命令的响应这使得Redis能够更高效地处理批量操作和大规模数据的读写。 下图展示了Redis管道的工作原理 在上图中客户端Client向Redis服务器Server发送多个命令每个命令用Command 1、Command 2等表示。这些命令被一次性发送到服务器而不需要等待每个命令的响应。服务器在执行所有命令后一次性将结果响应给客户端。同时说明了Redis管道的工作方式通过将多个命令打包成一次通信减少了每个命令的通信开销提高了系统的性能。 使用Redis管道时客户端通过创建一个管道对象将多个命令添加到管道中然后一次性执行管道中的命令。最后客户端可以收集所有命令的执行结果。 1管道概述 在Redis中管道是通过以下命令进行管理 命令描述PIPELINE开启管道模式用于一次性发送多个命令。MULTI开启事务模式用于在管道中执行一系列命令。EXEC提交管道中的事务执行并返回结果。 使用管道您可以将多个命令一次性发送给服务器然后通过一次通信获得所有命令的执行结果从而减少了每个命令的通信开销提高了系统的性能。 2Redis的管道特性 使用Redis管道可以获得以下优势 减少通信开销 在普通的命令传输中每个命令都需要来回的网络通信而管道可以将多个命令打包一次性发送给服务器从而大大减少了通信开销。这对于网络延迟较高的场景尤为重要有效提高了性能。 提高吞吐量 管道允许在一次通信中执行多个命令从而在单位时间内处理更多的命令。这对于需要处理大量命令的场景如批量数据处理、并发请求处理等能够有效提高Redis的吞吐量和响应能力。 2、使用Redis管道 1管道命令 以下是一个实际案例展示如何使用Redis管道来执行多个命令并提高性能 import redis.clients.jedis.Jedis; import redis.clients.jedis.Pipeline; import java.util.List;public class RedisPipelineExample {public static void main(String[] args) {Jedis jedis  new Jedis(localhost, 6379);// 创建管道Pipeline pipeline  jedis.pipelined();// 向管道中添加命令for (int i  0; i  10000; i) {pipeline.set(key  i, value  i);}// 执行管道中的命令ListObject results  pipeline.syncAndReturnAll();// 关闭连接jedis.close();} }在上述案例中使用了一个循环来向管道中添加10000个SET命令。通过使用管道可以在一次通信中将所有命令发送到服务器而不是逐个发送从而减少了通信开销提高了性能。 2管道优化性能 使用Redis管道可以提高性能特别是在需要批量处理多个命令的情况下。管道的原理是一次性将多个命令发送给服务器然后一次性获取结果这减少了通信的往返次数从而显著提高了吞吐量。 然而需要注意以下几点 管道不支持事务不能保证多个命令的原子性执行。 使用管道时命令的执行顺序可能与添加顺序不一致这需要根据业务需求进行考虑。 管道并非在所有场景下都能带来性能提升需要根据实际情况进行评估。 通过合理使用管道可以最大限度地发挥Redis在高性能数据处理中的优势。 三、事务 vs 管道何时使用何种 1、事务的适用场景 事务在某些场景下可以保证原子性和一致性的操作特别适用于强一致性要求的业务操作例如支付操作。 1强一致性操作 事务是一种适用于需要强一致性操作的机制。当多个命令需要在一个操作序列中原子性地执行时事务可以确保这些命令要么全部执行要么全部不执行以保持数据的一致性。 在以下示例中模拟一个银行转账操作其中需要同时扣减一个账户的余额并增加另一个账户的余额 Jedis jedis  new Jedis(localhost, 6379);// 开启事务 Transaction transaction  jedis.multi();// 扣减账户1余额 transaction.decrBy(account1, 100);// 增加账户2余额 transaction.incrBy(account2, 100);// 提交事务并获取执行结果 ListObject results  transaction.exec();// 关闭连接 jedis.close();2原子性要求高 当业务要求多个操作要么全部成功要么全部失败时事务是更好的选择。事务确保了事务中的一系列命令以原子操作方式执行从而维护了数据的一致性。 2、管道的适用场景 管道适用于需要批量操作和吞吐量要求较高的场景。通过一次性发送多个命令到服务器可以减少通信开销提高性能。 1批量操作 使用管道可以有效地执行批量操作。例如当您需要向数据库中添加大量数据时使用管道可以减少每个命令的通信成本从而大大提高操作的效率。 以下示例演示了如何使用管道进行批量设置操作 import redis.clients.jedis.Jedis; import redis.clients.jedis.Pipeline; import java.util.List;public class RedisPipelineBatchExample {public static void main(String[] args) {Jedis jedis  new Jedis(localhost, 6379);Pipeline pipeline  jedis.pipelined();// 向管道中添加一批设置操作for (int i  0; i  1000; i) {pipeline.set(key  i, value  i);}// 执行管道中的命令ListObject results  pipeline.syncAndReturnAll();// 关闭连接jedis.close();} }2吞吐量要求高 在需要高吞吐量的场景下管道可以显著提升性能。当多个命令需要在短时间内执行时使用管道可以将这些命令打包发送减少了通信的往返次数。 使用管道来进行大规模数据处理时尤其可以在高负载的情况下提高系统的处理能力。 四、案例研究保证订单支付的数据一致性与性能优化 1、场景描述 在一个在线商城系统中面临一个重要的问题如何在订单支付过程中保证数据的一致性并且如何优化支付操作的性能。 1订单支付需求 在用户下单后需要执行订单支付操作确保支付和订单状态的一致性。 2数据一致性要求 支付成功后必须将订单状态更新为已支付以保持数据的一致性。 3高并发支付 在高并发的情况下需要确保订单支付的性能和数据一致性。 2、使用Redis事务解决数据一致性问题 1事务实现订单支付 Jedis jedis  new Jedis(localhost, 6379); Transaction transaction  jedis.multi();// 扣除用户余额 transaction.decrBy(user:balance:1, orderAmount);// 更新订单状态为已支付 transaction.hset(order:1, status, paid);ListObject results  transaction.exec();以上示例中使用了Redis事务来确保在一个操作序列中用户余额的扣除和订单状态的更新同时发生。如果事务中的任何一步操作失败整个事务都会被回滚保证了数据的一致性。 2事务的一致性保证 使用事务可以保证用户余额和订单状态的一致性要么同时成功要么同时失败。这样可以确保支付和订单状态的正确性避免了潜在的数据不一致问题。 3、使用Redis管道优化支付性能 1管道批量支付 Jedis jedis  new Jedis(localhost, 6379); Pipeline pipeline  jedis.pipelined();for (Order order : orders) {pipeline.decrBy(user:balance:  order.getUserId(), order.getAmount());pipeline.hset(order:  order.getId(), status, paid); }ListObject results  pipeline.syncAndReturnAll();在这个示例中使用了Redis管道来批量处理多个订单的支付。通过将多个命令一次性发送给服务器可以减少通信开销从而显著提高支付操作的性能。 2管道的性能提升 通过使用管道可以将多个支付操作打包在一次通信中进行减少了通信往返次数从而提高了支付的性能。 尤其在高并发支付的场景下管道可以显著减少服务器负载提高系统的响应能力。 五、事务和管道的限制与注意事项 1、事务的限制 事务在使用过程中需要注意以下限制其中包括WATCH命令和乐观锁的使用。 1WATCH命令 在事务中使用WATCH命令可以监视一个或多个键如果被监视的键在事务执行过程中被其他客户端修改事务会被中断。这是为了保证事务的一致性和避免竞态条件。 正面例子 Jedis jedis  new Jedis(localhost, 6379); Transaction transaction  jedis.multi();// 监视键balance transaction.watch(balance);// ... 在此期间可能有其他客户端修改了balance键的值 ...// 执行事务 ListObject results  transaction.exec();反面例子 Jedis jedis  new Jedis(localhost, 6379); Transaction transaction  jedis.multi();// 监视键balance transaction.watch(balance);// ... 在此期间其他客户端修改了balance键的值 ...// 尝试执行事务但由于balance键被修改事务会被中断 ListObject results  transaction.exec();2乐观锁 在处理并发更新时可以使用乐观锁的方式。通过使用版本号或时间戳等机制在执行命令前先检查数据是否被其他客户端修改过从而避免并发冲突。 正面例子 Jedis jedis  new Jedis(localhost, 6379);// 获取当前版本号 long currentVersion  Long.parseLong(jedis.get(version));// 更新数据前检查版本号 if (currentVersion  Long.parseLong(jedis.get(version))) {Transaction transaction  jedis.multi();transaction.set(data, new value);transaction.incr(version);ListObject results  transaction.exec(); } else {// 数据已被其他客户端修改需要处理冲突 }2、管道的注意事项 使用管道时需要注意以下事项包括管道的串行性和慎重使用。 1不支持事务 管道不支持事务因此无法通过管道实现事务的原子性和一致性。如果需要事务支持应该使用Redis的事务机制。 2慎用管道 管道虽然可以提高性能但并不是在所有场景下都能带来性能提升。在某些情况下由于管道的串行性某些命令可能会阻塞其他命令的执行反而降低了性能。 正面例子 Jedis jedis  new Jedis(localhost, 6379); Pipeline pipeline  jedis.pipelined();for (int i  0; i  1000; i) {pipeline.set(key  i, value  i); }// 执行管道中的命令并获取结果 ListObject results  pipeline.syncAndReturnAll();反面例子 Jedis jedis  new Jedis(localhost, 6379); Pipeline pipeline  jedis.pipelined();for (int i  0; i  1000; i) {// 注意此处执行了耗时的命令可能阻塞其他命令的执行pipeline.get(key  i); }// 执行管道中的命令并获取结果 ListObject results  pipeline.syncAndReturnAll();六、总结 本篇博客深入探讨了Redis中的事务和管道机制以及它们在保证数据一致性和优化性能方面的应用。 通过详细的讲解和代码示例我们了解了事务和管道的基本概念、特性、使用方法以及适用场景。以下是本篇博客的主要内容总结 在Redis事务部分我们了解了事务的概念和特性。事务可以确保一系列命令的原子性、一致性、隔离性和持久性。 通过MULTI、EXEC、DISCARD和WATCH命令我们可以管理事务的开始、提交、回滚以及监视键变化。事务适用于需要保证原子性和一致性的操作特别是在强一致性要求的场景下。 在Redis管道部分我们深入了解了管道的概念和优势。管道允许一次性发送多个命令到服务器减少通信开销提高性能。 通过PIPELINE、MULTI和EXEC命令我们可以创建管道、添加命令并执行管道中的命令。管道适用于批量操作和吞吐量要求较高的场景可以显著提高Redis的性能。 在事务 vs 管道何时使用何种部分我们对比了事务和管道的适用场景。 事务适用于保证强一致性操作和原子性要求高的场景; 管道适用于批量操作和高吞吐量的场景。 通过示例我们说明了如何根据业务需求选择合适的机制来满足一致性和性能的需求。 在案例研究保证订单支付的数据一致性与性能优化部分我们应用之前的知识解决了一个实际问题。我们展示了如何使用事务保证订单支付的数据一致性同时如何使用管道优化支付操作的性能。这个案例充分体现了事务和管道在实际业务中的应用。 在事务和管道的限制与注意事项部分我们指出了事务和管道的一些限制和注意事项。事务受到WATCH命令和乐观锁的限制而管道不支持事务并且需要在使用时慎重考虑性能影响。 通过本篇博客我们详细探讨了Redis中的事务和管道机制了解了它们如何在实际应用中保证数据一致性和优化性能。无论是强调一致性还是追求性能都可以根据业务需求选择合适的机制来达到最佳效果。 兄弟王者荣耀的段位排行榜是通过Redis实现的 离谱面试为啥都问Redis缓存赶紧补一下 图解DubboDubbo服务治理详解 2023年再不会K8S就要被淘汰了手把手带你飞 10000字图解分布式系统限流平台Sentinel 图解Nginx系统架构演变 Nginx反向代理与负载均衡 图解Nacos注册中心演变 Nacos核心功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87296.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做化工的外贸网站都有什么意思北京有哪些网站建设公司

前往-->按住option键进入资源库-->Developer-->Xcode-->DerivedData 删除里面的文件就行了转载于:https://www.cnblogs.com/10-19-92/p/5181940.html

自贡市建设局网站中国企业名录

我们如果想要将两者不同格式文件进行格式转换,就需要下载安装转换器。如果出门带的设备没有安装转换软件客户端,就无法使用,会比较麻烦。现在有了在线转换工具,只需要打开相应的网页就可使用,那么在线Word转PDF的操作是…

网站建设教程小说青岛建设公司网站费用

一、abort函数 使用abort函数可以立即终止视图函数的执行,并可以返回给前端特定的信息 传递状态码信息,必须是标准的http状态码 abort(403)传递响应体信息 resp Response(“login failed”) abort(resp) from flask import Flask,request,abort,Resp…

企业网站模板下载哪里好苏州市现代建设咨询管理公司

BOM(浏览器对象模型),提供了一系列操作浏览器,获取浏览器信息的接口。这些接口在平时的工作中会经常用到,例如当前页面的刷新,获取url的参数等等。 注:图片来自 http://www.dreamdu.com/javascr…

wordpress微信授权登录界面seo系统源码出售

在Java中,与C语言相比,指针的使用是受到限制的。Java的设计初衷是为了提供更高的安全性和可靠性,因此它采用了一些机制来避免常见的指针错误。 具体来说,Java中没有像C语言中那样的显式指针操作。Java中的引用可以看作是一种类似…

有效的网络编址方案有品牌网站建设优化公司哪家好

很不错的CSS透明效果&#xff0c;本实例是用CSS控制外层DIV不透明&#xff0c;而内层DIV透明&#xff0c;这样实现的效果是意想不到的&#xff0c;还不错吧&#xff0c;其实代码也是很简单的&#xff0c;也很好理解&#xff0c;主要是用了CSS的滤镜。 <html xmlns"http…

徐州建站模板丽泽桥网站建设

本文链接&#xff1a;https://blog.csdn.net/junlong750/article/details/50945883转载于:https://www.cnblogs.com/bevis-byf/p/11578724.html

万维网站建设网络规划设计师适合干什么

使用场景&#xff1a;使用软连接简化版本切换动作 进入操作目录&#xff0c; cd /opt/modules/ 1、创建软连接ln -s jdk1.8.0_131 jdk1.8ln -s spark-2.1.0-bin-hadoop2.7 sparkln -s hadoop-2.7.3 hadoop 2、删除软连接rm -rf hadooprm -rf sparkrm -rf jdk1.8 3、验证结果 …

汕头seo网站排名网站建设与管理专业是什么

想实现类似迅雷那样下载时可以从文件半中间写入的功能#include<stdio.h> int main() { FILE *fp; fpfopen("overwrite.bin","rb"); //使用rb模式,可以往半中间插入数据,而且是覆盖插入,若使用"ab"每次都插入到…

网站开发的费用计入什么科目sofish wordpress主题

vue面试题&#xff08;全&#xff09; 原理篇&#xff1a; 1&#xff0c;computed和watch的区别 computed 计算属性 : 依赖其它属性值,并且 computed 的值有缓存,只有它依赖的属性值发生改变,下一次获取 computed 的值时才会重新计算 computed 的值。 对检测的值没有要求 w…

网站开发及app开发都需要多少钱搭建网站商城

Gartner近日公布的网络安全重要趋势预测显示&#xff1a;高管绩效评估将越来越多地与网络风险管理能力挂钩&#xff1b;未来三年内&#xff0c;全球近三分之一的国家将通过立法对勒索软件应对措施进行规范&#xff1b;安全平台整合将保障企业机构即便在恶劣环境中也能快速发展。…

可信赖的网站建设推广建设主题网站的顺序是什么样的

点击查看最新编程语言流行度排名&#xff08;每月更新&#xff09; 2023年11月编程语言流行度排名 编程语言流行度排名是通过分析在谷歌上搜索语言教程的频率而创建的 一门语言教程被搜索的次数越多&#xff0c;大家就会认为该语言越受欢迎。这是一个领先指标。原始数据来自…

怎样管理网站女与男爱做电影网站免费下载

转自&#xff1a;http://starting.iteye.com/blog/1039809 主要实现的功能有放大&#xff0c;缩小&#xff0c;获取地图大小&#xff0c;平移&#xff0c;线路测量&#xff0c;面积测量&#xff0c;拉宽功能&#xff0c;显示标注&#xff0c;移除标注&#xff0c;画多边形获取经…

省企联网站建设要求wordpress修改页面标题显示不出来

一、 开发步骤分享 抖音SEO矩阵系统源代码开发部署分享&#xff0c;需要经验丰富的开发人员和服务器管理人员&#xff0c;以下是大致的步骤&#xff1a; 确定你需要的功能和设计&#xff0c;确定开发人员和设计师的角色和任务分配&#xff0c;以及开发进度和计划。 确定服务器…

龙华营销型网站设计wordpress 显示微信二维码

Spring Security可以为您做很多事情。 帐户被封锁&#xff0c;密码盐。 但是蛮力阻断剂呢&#xff1f; 那是你必须自己做的。 幸运的是&#xff0c;Spring是一个非常灵活的框架&#xff0c;因此对其进行配置并不是什么大问题。 让我向您展示一些如何针对Grails应用程序执行…

播州区住房城乡建设路的网站网站 建设目标

链表 简介[简单] 203. 移除链表元素[中等] 707. 设计链表[简单] 206. 反转链表[简单] 24. 两两交换链表中的节点[简单] 19. 删除链表的倒数第 N 个结点 简介 记录一下自己刷题的历程以及代码。写题过程中参考了 代码随想录。会附上一些个人的思路&#xff0c;如果有错误&#…

安平县哪个做网站的好郑州高新发布

一、结构体的介绍/* 语法&#xff1a;struct 结构体名{成员列表;};切记切记有分号&#xff01;说明&#xff1a;成员列表就是指你要保存哪些类型的数据。注意&#xff1a;上面的语法只是定义一个新的类型&#xff0c;而这个类型叫做结构体类型。因为类型不能保存数据&#xff0…

专业的网站建设宝安西乡网站制作程序下载

背景&#xff1a;知乎上常有非常精彩的回答/文章&#xff0c;必须要点赞收藏&#xff0c;日后回想起该回答/文章时翻看自己的动态和收藏夹却怎么也找不到&#xff0c;即使之前保存了链接网络不好也打不开了&#xff08;。所以我一般碰到好的回答/文章都会想办法保存它的离线版本…

品牌策划网站建设wordpress设置上传

思路&#xff1a; 通过题目可以得出结论 b1^b2a1 b2^b3a2 ....... bn-1^bnan-1 所以就可以得出 (b1^b2)^(b2^b3)a1^a2 b1^b3a1^a2 有因为当确定一个数的时候就可以通过异或得到其他所有的数&#xff0c;且题目所求的是一个n-1的全排列 那么求出a的前缀异或和arr之后…

做网站要固定电话自己动手建立网站3

前面我做了几个实验 都没有用过 开关&#xff0c;这一次用一用 发现 vivado 真的挺方便 所以 使用 vivado 开发 1.建工程 我使用 vivado 2013.4 创建新工程 –》 next –》next 勾选 Do not specify sources at this time //这样跳过后面两个添加文件页面 选择 board –》 ze…