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

python网站开发源码微信如何建商城网站

python网站开发源码,微信如何建商城网站,免费咨询皮肤科医生,网站建设社区交流介绍 Lua脚本 背景 Redis是一种抽象数据类型的特定领域语言#xff0c;由各种命令组成。大多数命令专门用于操作不通的数据类型。每次发送命令均需要执行至此网络请求。所以Redis提供了一个编程接口#xff0c;支持服务器执行用户自定义的任意脚本。有助于减少网络流量由各种命令组成。大多数命令专门用于操作不通的数据类型。每次发送命令均需要执行至此网络请求。所以Redis提供了一个编程接口支持服务器执行用户自定义的任意脚本。有助于减少网络流量并提高整体性能。在脚本中可以执行多个命令封装一定的业务逻辑。 运行脚本 首先自Redis2.6.0以来EVAL命令支持运行服务器端脚本。Eval脚本提供了一种快速而直接的方法让Redis临时运行脚本。这意味着脚本必须在应用程序中维护以便于随时加载。随着应用程序的发展这种方法后续更难开发和维护。 其次在v7.0中添加的Redis函数本质上是作为一类数据库元素的脚本。因此函数将脚本与应用程序逻辑分离并支持脚本的独立开发、测试和部署。若要使用函数需要先加载它们然后才能供所有连接的客户端使用。在这种情况下将函数加载到数据库将成为一项管理部署任务例如加载Redis模块这会将脚本与应用程序分开。 在运行脚本或函数时Redis保证其原子执行。脚本的执行会在整个时间内阻止所有服务器活动类似于事务的语义。这些语义意味着脚本的所有效果要么尚未发生要么已经发生。已执行脚本的阻塞语义始终适用于所有连接的客户端。 所以必须要注意的是执行的脚本不是是一个慢脚本。如果执行过慢会阻塞所有的客户端请求。 用法 使用 EVAL 命令开始使用 Redis 编写脚本。 EVAL return Hello, scripting! 0 Hello, scripting!在此示例中EVAL采用两个参数。第一个参数是一个字符串由脚本的Lua源代码组成。该脚本不需要包含Lua函数的任何定义。它只是一个将在Redis引擎上下文中运行的Lua程序。 第二个参数是脚本正文后面的参数数从第三个参数开始表示Redis键名。在此示例中我们使用值0因为我们没有为脚本提供任何参数无论是否为键的名称。 执行上下文可以通过KEYS和ARGV全局运行时变量使参数可供脚本使用。KEYS表预先填充了在执行脚本之前提供给脚本的所有键名参数而ARGV表具有类似的用途但用于常规参数。 redis EVAL return { KEYS[1], KEYS[2], ARGV[1], ARGV[2], ARGV[3] } 2 key1 key2 arg1 arg2 arg3 1) key1 2) key2 3) arg1 4) arg2 5) arg3Redis事务 原理 Redis事务允许执行一组命令在一个步骤中它们以MULTI、EXEC、DISCARD和WATCH命令为中心。Redis事务提供两项重要保证 事务中的所有命令都序列化并执行顺序。另一个客户端发送的请求永远不会在执行Redis事务的过程中提供服务。这保证了命令作为单个命令执行隔离操作。 EXEC命令触发事务中所有命令的执行因此如果客户端在事务在调用EXEC命令之前不执行任何操作如果调用EXEC命令则所有执行操作。使用仅追加文件时Redis确保使用单个write(2) syscall将事务写入磁盘。但是如果Redis服务器崩溃或被系统管理员杀死在某种程度上可能只有部分操作已注册。Redis将在重新启动时检测到此情况并退出并显示错误。使用redis-check-aof该工具可以修复仅附加将删除部分事务的文件以便服务器可以重新启动。 从版本2.2开始Redis以乐观锁定的形式以一种非常相似的方式检查和设置CAS操作。 用法 使用MULTI命令输入Redis事务。命令总是回复OK。此时用户可以发出多个命令。Redis不会执行这些命令而是会排队他们。调用EXEC后将执行所有命令。 相反调用DISCARD将刷新事务队列并退出交易。 MULTI OKINCR foo QUEUEDINCR bar QUEUEDEXEC 1) (integer) 1 2) (integer) 1从上面的会话中可以清楚地看出EXEC返回一个回复数组其中每个元素都是单个命令的回复在事务中命令的发出顺序相同。 事务中命令错误 从Redis2.6.5开始服务器会在命令累积过程中检测到错误。然后它将拒绝执行事务在EXEC期间返回错误从而丢弃事务。 相反EXEC之后发生的错误不会以特殊方式处理即使某些命令在事务期间失败所有其他命令也会被执行。 回滚 Redis事务不支持回滚。 Redis Lua脚本和事务使用场景 对于redis中的事务类操作还需要考虑其他事项即redis脚本它们是事务性的。可以用 Redis 事务 做的所有事情也可以用脚本来做通常脚本会更简单、更快捷。 缺点 Lua脚本缺点 所有客户端必须要维护所有的脚本副本。EVAL是一种反模式。它们往往在短期内看起来有效但长期来看会增加技术债务、降低代码质量和团队效率。脚本之间无法互相调用无法直接支持redis cluster模式需要运算key对应的哈希槽。 Redis事务缺点 Redis事务不支持归滚Redis事务每条命令都与redis服务器进行一次网络交互
http://www.dnsts.com.cn/news/218923.html

相关文章:

  • 网站建设流程网站备案转移
  • 禹城网站建设公司家装报价单明细表电子版
  • 兰州营销型网站张家港手机网站建设
  • 一流的上海网站建设公司json做网站
  • 建设一个网站报价做二手家电市场加什么网站可以
  • 能建设铁塔的公司网站在线表白网页
  • 福建宏盛建设集团网站无锡有哪些软件开发的公司
  • 淮安建设网站制作邓州十九张麻将微信群app开发公司
  • 空气炸锅做糕点的网站网站js特效悬浮框
  • 网站制作的基本流程是什么电商网站建设怎么样
  • 南京网站工作室深圳市住房和建设局人事调整
  • 手工艺品网站建设方案高明做网站
  • 企业门户网站模板html昆明网站搭建网站运营
  • 网站后台示演php做的大型网站有哪些
  • 网站设计要注意事项网站logo设计标准
  • 网站建设常见故障制作简历哪个网站好
  • wordpress 推荐文章营口网站优化
  • 福建漳州建设局网站wordpress扒站
  • 智能网站平台集宁建设局网站
  • 电子商务网站开发的过程wordpress博客 登录
  • 模具钢东莞网站建设安全联盟网站认证
  • 设计公司企业标语成都网站排名优化开发
  • 塑胶加工东莞网站建设技术支持网站文章更新要求
  • 长宁企业网站制作怎么去推广一个app
  • 2003总是说网站建设中泰安公司
  • 网站备案拍照要求怎样搭建一个个人网站
  • 本机做网站桥梁建设杂志有假网站吗
  • app网站设计制作扬州市城市建设监察支队网站
  • 什么网站可以做设计赚钱吗建一个个人网站
  • 万网网站需要的步骤创造软件的软件下载