LUA脚本判断是否为空

系列文章目录


文章目录

  • 系列文章目录
  • 前言


前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述


Lua是一个小巧的脚本语言。它是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo三人所组成的研究小组于1993年开发的。 其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。
在这里插入图片描述
在某次学习中,发现示例中仅仅对获取的值进行了判断,那么如果值为空,在LUA中该怎么判断呢?

这貌似是个简单问题,简单到一说判断为空就开始长篇大论了,因为可能真的太简单了吧,不过没办法,自己就是不会。

无奈只能自己编写脚本自己调用调试。

找到一个说法是这样的:在lua中,除了nil和false,其他的值都为真,包括0,可以通过nil为false这一点来判断是否为空。

那么编写一个脚本进行测试,如果GET到的值为空,就返回404,其他返回1

--- 在lua中,除了nil和false,其他的值都为真,包括0,可以通过nil为false这一点来判断是否为空
if(not(redis.call('get', ARGV[1]))) then
    return 404
end
return 1

注意,这里用到了取反操作符NOT,然后编写Java代码进行调用

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.ClassPathResource;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.script.DefaultRedisScript;
import java.util.Collections;
@SpringBootTest
public class RedisTest {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    private static final DefaultRedisScript<Long> TEST_SCRIPT;
    static {
        TEST_SCRIPT = new DefaultRedisScript<>();
        TEST_SCRIPT.setLocation(new ClassPathResource("test.lua"));
        TEST_SCRIPT.setResultType(Long.class);
    }
    @Test
    public void testLua(){
        // 1.执行lua脚本
        Long result = stringRedisTemplate.execute(
                TEST_SCRIPT,
                Collections.emptyList(),
                "Java001"
        );
        System.out.println(result);
    }
}

这里让他去获取Java001的值,我的Redis是没有的,返回404。然后获取一个存在的,返回就是1。实验证明,这个方法是可行的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MOS产品在储能上的应用分析与推荐

电化学储能可与光伏、风电等新能源发电相结合&#xff0c;缓解可再生能源稳定性差的问题。同时&#xff0c;电化学储能可提供调峰、调频、AGC、黑启动等辅助服务&#xff0c;保障电网安全。此外&#xff0c;电化学储能可以起到削峰填谷的作用&#xff0c;为住宅、工业和商业用户…

阻塞队列(模拟+生产者消费者)

阻塞队列 字面意思&#xff0c;带有阻塞功能的队列&#xff0c;满足队列先进先出的性质 作用&#xff1a; 1.如果队列为空&#xff0c;此时执行出队列操作&#xff0c;就会阻塞&#xff0c;直到往此队列里添加元素为止&#xff08;队列不为空&#xff09; 2.如果队列为满&#…

GIS地理信息平台+智慧巡检技术解决方案(Word原件)

1.系统概述 1.1.需求描述 1.2.需求分析 1.3.重难点分析 1.4.重难点解决措施 2.系统架构设计 2.1.系统架构图 2.2.关键技术 3.系统功能设计 3.1.功能清单列表软件全套精华资料包清单部分文件列表&#xff1a; 工作安排任务书&#xff0c;可行性分析报告&#xff0c;立项…

故障诊断 | 基于迁移学习和SqueezeNet 的滚动轴承故障诊断(Matlab)

目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 将一维轴承振动信号转换为二维尺度图&#xff08;时频谱图&#xff09;&#xff0c;并使用预训练网络应用迁移学习对轴承故障进行分类。 迁移学习显著减少了传统轴承诊断方法特征提取和特征选择所花费的时间&#xff…

果园系统养殖游戏喂养偷菜种植浇水养成小程序功能介绍

以下是上述功能介绍的重写版本&#xff1a; 装扮 使用丰富的材料&#xff0c;为您的房屋增添独特魅力&#xff0c;展现个性化装饰风格。 土地升级 投入不同数量的材料&#xff0c;提升房屋与土地的品质&#xff0c;打造独一无二的庄园。 日志 通过日志记录&#xff0c;清…

[Leetcode]用栈实现队列

用栈实现队列&#xff1a; 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元…

SQL优化——访问路径(ACCESS PATH)

文章目录 1、常见访问路径1.1、TABLE ACCESS FULL1.2、TABLE ACCESS BY USER ROWID1.3、TABLE ACCESS BY ROWID RANGE1.4、TABLE ACCESS BY INDEX ROWID1.5、INDEX UNIQUE SCAN1.6、INDEX RANGE SCAN1.7、INDEX SKIP SCAN1.8、INDEX FULL SCAN1.9、INDEX FAST FULL SCAN1.10、I…

AI的十大趋势如何?斯坦福《2024年人工智能指数报告》告诉你

最近&#xff0c;全球著名华人人工智能学者李飞飞联合领导的斯坦福大学以人为本人工智能研究所&#xff08;Stanford HAI&#xff09;发布了《2024 年人工智能指数报告》&#xff08;Artificial Intelligence Index Report 2024&#xff09;。 《2024 年人工智能指数报告》下载…

windows terminal屏幕分栏的打开和关闭快捷键

最近看的工程基于windows的&#xff0c;自学c语法基于vm里的Ubuntu&#xff0c;win的终端好难用&#xff0c;搞得我好分裂。win系统找到了一个还不错的终端程序&#xff0c;总是记不住常用的快捷键&#xff0c;就记录下。 &#xff08;安装也超简单&#xff0c;直接在MicroSoft…

Vmware 虚拟机自定义IP地址 - UbuntuServer2204

Vmware 虚拟机自定义IP地址 - UbuntuServer2204 设置网段 选择喜欢的网段&#xff0c; 例如&#xff1a; 166 自定义 IP地址 打开虚拟机&#xff0c; 输入命令查看网卡名 ip addr查看网卡配置文件 ls -al /etc/netplan/编辑网卡配置文件 sudo vim /etc/netplan/00-installe…

linux 的Jdk1.8详细安装部署教程

一、环境准备 1.下载安装包 下载地址&#xff0c;这是1.8的你也可以选择安装别的版本的 https://www.oracle.com/java/technologies/downloads/#java8-windows 选择想要的系统和对应的位数&#xff0c;点击下载即可 2.上传安装包 选择自己要安装的路径&#xff0c;&#x…

06—js函数(构造函数,原型,原型链。。。。。。)

一、初识函数 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。 通过函数可以封装任意多条语句&#xff0c;而且可以在任何地方&#xff0c;任何时间进行调用和执行 二、创建函数 &#xff08;1&#xff09;function命令&#xff0c; 使用关键词 function来声…

虚拟现实(VR)开发框架

虚拟现实&#xff08;VR&#xff09;开发框架为开发者提供了构建VR应用程序所需的基本工具和功能。它们通常包括3D引擎、场景图、输入系统、音频系统和网络功能。下面是一些流行的VR开发框架。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流…

借助 AI 对话文档:100% 私密且无数据泄漏 | 开源日报 No.224

zylon-ai/private-gpt Stars: 50.0k License: Apache-2.0 PrivateGPT 是一个可以与您的文档进行交互的项目&#xff0c;利用 GPT 的强大功能&#xff0c;100% 私密且无数据泄漏。 提供 API 支持构建私密、上下文感知的 AI 应用程序遵循和扩展 OpenAI API 标准支持普通和流式响…

51单片机实验04 -数码管的动态显示实验

目录 一、实验目的 二、实验内容 三、实验原理 四、实验方法 五&#xff0c;实验效果及代码 1&#xff0c;效果 2&#xff0c;代码 六&#xff0c;课后习题 1&#xff0c;使用定时器T0的中断函数1 从999999~0计时 1&#xff09;效果 2&#xff09;代码 2&#xff0c…

国内低代码平台大揭秘:十大排名榜单综述

国内低代码平台有&#xff1a;Zoho Creator、腾讯云云开发、阿里云宜搭、华为云AppCube、爱速搭、白码、织信、活字格、ClickPaaS、简道云。 一、Zoho Creator Zoho Creator是一款基于云计算的低代码平台&#xff0c;旨在帮助企业和开发者快速构建和部署应用程序。该平台提供…

论AEM CV-100 K50E|K60E|NSA升级注意事项

新加坡AEM公司在中国的平台深圳维信仪器报道&#xff1a;近日有很多小伙伴过来咨询&#xff0c;CV-100如何升级&#xff1f;都是想要使用最新的测试功能&#xff0c;比如上图的TDR高精度测试&#xff0c;可以准确的判定被测线缆的故障点。 5.0.307版本不含有tdr高精度测试&…

一键下载全自动安装Office全家桶

概述 今天分享一款超级强大的工具软件&#xff0c;该软件实现了一键自动化下载、安装Office全家桶的功能。整套安装流程堪称行云流水&#xff0c;从下载到安装全自动&#xff0c;无需上手操作。只需要安装该工具软件后&#xff0c;点击安装即可。软件会自动识别不同的操作系统架…

虹科技术丨全新Linux环境PCAN驱动程序发布!CAN/CAN FD通信体验全面升级!

来源&#xff1a;虹科汽车电子 虹科技术丨全新Linux环境PCAN驱动程序发布&#xff01;CAN/CAN FD通信体验全面升级&#xff01; 原文链接&#xff1a;https://mp.weixin.qq.com/s/4RXqjUa_odEaxAhcfQOHaA 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; #PCAN #Linu…

《Linux运维总结:Kylin V10+ARM架构CPU基于docker-compose一键离线部署redis6.2.8之容器版哨兵集群》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;《Linux运维篇&#xff1a;Linux系统运维指南》 一、部署背景 由于业务系统的特殊性&#xff0c;我们需要面向不通的客户安装我们的业务系统&…