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

佛山做网站公司有哪些住宅和城乡建设部网站

佛山做网站公司有哪些,住宅和城乡建设部网站,绍兴的网站建设公司,wordpress导入演示卡主edis的lua脚本 Lua 是一种轻量小巧的脚本语言#xff0c;用标准C语言编写并以源代码形式开放#xff0c; 其设计目的是为了嵌入应用程序中#xff0c;从而为应用程序提供灵活的扩展和定制功能。 Lua 是巴西里约热内卢天主教大学#xff08;Pontifical Catholic University …edis的lua脚本 Lua 是一种轻量小巧的脚本语言用标准C语言编写并以源代码形式开放 其设计目的是为了嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。 Lua 是巴西里约热内卢天主教大学Pontifical Catholic University of Rio de Janeiro里的一个研究小组于 1993 年开发的该小组成员有Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo lua脚本设计目的 其设计目的是为了嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。 lua脚本在redis中的应用 从 Redis 2.6.0 版本开始起可通过内置的 Lua 解释器可以使用 EVAL 命令对 Lua 脚本进行执行。 在redis中使用lua脚本的好处 支持原子性操作 - Redis会将整个脚本作为一个整体执行原子性中间不会被其他请求插入。因此在脚本运行过程中无需担心会出现竞态条件无需使用事务。 降低网络开销 - 将多个请求通过脚本的形式一次发送到服务器减少了网络的时延。 脚本复用 - 客户端发送的脚本可支持永久存在redis中这样其他客户端可以复用这一脚本而不需要使用代码完成相同的逻辑。 lua基本语法 lua变量 局部变量 local a 5 全局变量 不需要local关键字。 a 12 -- 全局变量 local b3条件语句 if 条件 : then end if 条件 then else end KEYS数组 传递给Lua脚本零到多个键KEYS[index],注意索引从1开始。 ARGV数组 是传递给脚本的零到多个附加参数 ARGV[index],注意索引从1开始。 redis.call() 用来调用redis命令。 Hello Lua脚本案例 脚本编辑 在resource路径下创建lua/hello.lua文件 传入的redis key为数组使用KEYS[index]传参 传入的redis value为数组使用ARGV[index]传值。 -- key local k1 KEYS[1] local k2 KEYS[2] local k3 KEYS[3] -- value local v1 ARGV[1] redis.call(set,k1,v1) redis.call(set,k2,v1) redis.call(set,k3,v1) return OKspringboot配置 定义一个读取lua脚本的配置类。 Bean public DefaultRedisScriptString defaultRedisScript(){DefaultRedisScriptString defaultRedisScript new DefaultRedisScript();defaultRedisScript.setResultType(String.class);defaultRedisScript.setLocation(new ClassPathResource(lua/hello.lua));return defaultRedisScript; }单元测试 Test public void luaTest(){} ListString keys new ArrayList();keys.add(money01);keys.add(money02);keys.add(money03);String val1 100;String val2 150;String val3 200;String execute stringRedisTemplate.opsForValue().getOperations().execute(defaultRedisScript,keys,val1,val2,val3);System.out.println(lua调用: execute);} }springboot中Lua脚本的创建流程 定义脚本文件方式 创建lua文件 resources/lua/xxx.lua 编辑lua脚本 local 本地变量 类似于js var KEYS数组 从外界传入的key下标 从1 开始 ARGV 数组 外界命令中传输的值 条件 : if 条件 then... else.... endtonumber()将字符串转换为数值 return 定义script对象读取lua脚本 Bean public DefaultRedisScriptString defaultRedisScript(){DefaultRedisScriptString defaultRedisScript new DefaultRedisScript();defaultRedisScript.setResultType(String.class);defaultRedisScript.setLocation(new ClassPathResource(lua/hello.lua));return defaultRedisScript; }执行脚本 stringRedisTemplate.opForValue().getOpertation().execute(defaultRedisScript,keys //ArrayListval1,val2... //值);代码方式实现 将脚本文件的内容转换为字符串如果lua脚本比较小在不同程序中lua内容比较灵活聚合性比较高。可以采用此种方式。 String script local k1 KEYS[1]\n local k2 KEYS[2]\n local k3 KEYS[3]\n local v1 ARGV[1]\n local v2 ARGV[2]\n local v3 ARGV[3]\n \n redis.call(set,k1,v1)\n redis.call(set,k2,v2)\n redis.call(set,k3,v3)\n \n return \OK\; String execute stringRedisTemplate.opsForValue().getOperations().execute(new DefaultRedisScript(script,String.class),new ArrayListString(){{add(m1);add(m2);add(m3);}},10, 20, 30); System.out.println(lua调用: execute);String execute stringRedisTemplate.opsForValue().getOperations().execute(new DefaultRedisScript(local k1 KEYS[1] local k2 KEYS[2] local k3 KEYS[3] local v1 ARGV[1] local v2 ARGV[2] local v3 ARGV[3] redis.call(set,k1,v1) redis.call(set,k2,v2) redis.call(set,k3,v3) return \OK\, String.class),new ArrayListString() {{add(m1);add(m2);add(m3);}},100, 20, 30);System.out.println(lua调用: execute);lua脚本创建布隆过滤器 127.0.0.1:6379 BF.ADD newFilter bmFilter (integer) 1 127.0.0.1:6379 编写lua脚本 在resource下创建lua脚本 local key KEYS[1] local val ARGV[1]local retVal tonumber(redis.call(BF.ADD,key,val))if retVal1 thenreturn 1 elsereturn 0 end测试 Test public void testLua() {ListString keys new ArrayList();keys.add(bmFilter);Long t (Long) stringRedisTemplate.opsForValue().getOperations().execute(redisScript, keys, admin888);System.out.println(---t);}代码中加入脚本 ListString keys new ArrayList(); keys.add(bmFilter); String script return redis.call(BF.EXISTS,KEYS[1],ARGV[1]); Long s stringRedisTemplate.opsForValue().getOperations().execute(new DefaultRedisScriptLong(script,Long.class), keys,username);log.debug(s---, s);下一章我们研究-redis的限流插件redis-cell
http://www.zqtcl.cn/news/89501/

相关文章:

  • 建公司网站要多少钱易班网站建设基础
  • 网站建设技术进行开发分分彩做号网站
  • 一个网站如何赚钱alexa排名与什么有关系
  • 企业建设网站应如何申请中国制造加工网官网
  • 企业网站建设cms系统广源建设集团有限公司网站
  • 网站建设企业免费咨询石家庄楼盘最新消息
  • 一个网站如何做双语网站域名 空间申请表
  • 自建免费网站哪个好下载全网搜
  • 北京网站改版多少钱保护环境做网站素材
  • 网站建设还有需求么做网站 聊城
  • 专业网站优化哪家好昆山有建设网站的吗
  • 网站建设流程六个步骤kencms内容管理系统
  • 拖拽建站平台水土保持与生态建设网站
  • seo网站改版如何建立和设计公司的网站
  • 做网站的哪家比较好区块链开发与应用专业
  • 大学网站html模板下载工业设计参考网站
  • 取消网站备案号立陶宛和中国最新消息
  • 南京网站建设南京做网站能赚钱吗
  • 企业免费自助建站系统展会网站建设
  • 宁波网站推广方法中国常用网页开发
  • 怎样免费建立自己的网站做网站游戏总结的例文
  • 楼盘网站建设方案ppt汽修厂营销活动方案
  • 培训网站导航网站制作目标及要求
  • 两个网站开发swot分析wordpress 文章 同步
  • 高端科技网站建设国外网站网址
  • 网站敏感词汇浏览器网页打不开是什么原因
  • 自治区建设厅官方网站开网店要建网站平台吗
  • 网站配色模板免费的短视频app大全
  • 如何做网校网站做网站需要买域名
  • 郑州做个人网站的公司网站开发语言在线检测