首页 \ 问答 \ Redis lua脚本无法正常工作(Redis lua script not working)

Redis lua脚本无法正常工作(Redis lua script not working)

我创建了一个redis lua脚本来执行基于密钥数据类型的命令: -

local keyType = redis.call("TYPE", KEYS[1])
if (keyType == "string")
then
return redis.call("GET",KEYS[1])
else
return nil
end

每次执行它都会返回null。可以帮助纠正脚本。


I have created a redis lua script to execute a command based on key data type :-

local keyType = redis.call("TYPE", KEYS[1])
if (keyType == "string")
then
return redis.call("GET",KEYS[1])
else
return nil
end

It is returning null every time I am executing it.Can any please help in correcting the script.


原文:https://stackoverflow.com/questions/35315176
更新时间:2022-07-09 16:07

最满意答案

第一个将导致未定义的行为,因为您走出字符串文字的边界(下溢)

第二个示例也是未定义的,因为您访问的地址不能保证可访问,甚至不存在。

限制内存位置不是C,而是OS和编译器。


The first will result in undefined behavior, as you are going out of the boundaries of the string literal (underflow)

The second is example is undefined as well, as you access address that are not guaranteed to be accessible, or even exist.

The off-limit memory locations are not of C, but of the OS and the compiler.

相关问答

更多
  • 第一个将导致未定义的行为,因为您走出字符串文字的边界(下溢) 第二个示例也是未定义的,因为您访问的地址不能保证可访问,甚至不存在。 限制内存位置不是C,而是OS和编译器。 The first will result in undefined behavior, as you are going out of the boundaries of the string literal (underflow) The second is example is undefined as well, as you a ...
  • 第三个块应该是“var1:goodbye var2:goodbye”,因为var1和var2应该是相同的内存位置。 不, var1和var2存在于不同的内存位置。 将一个结构的实例分配给另一个结构将源结构使用的内存区域blits(复制)到目标结构的内存区域。 在此操作之后,它们仍然是内存中的独立对象,您只需将所有成员的值从一个复制到另一个。 对一个对象的未来更改不会影响另一个对象,除非您将其中一个再次复制到另一个对象上。 The third block should be "var1: goodbye va ...
  • 一旦通过调用delete来释放内存并尝试再次访问该地址处的内存,它就是一个未定义的行为 。 该标准没有要求编译器在这方面做任何特殊的事情。 它不要求编译器用0或某些特殊的幻数来标记去分配的内存。它被忽略为编译器的实现细节。 一些编译器实现会用一些特殊的幻数来标记这样的内存,但这是留给每个编译器实现的。 在你的情况下,数据仍然存在于解除分配的地址,因为可能没有其他需要内存重新使用的内存需求,并且编译器没有清除先前分配的内容(因为不需要) 。 但是,你不应该依赖这个,因为这可能并非总是如此。 它仍然是并且将是一 ...
  • 在获取它的容器末尾引用迭代器是未定义的行为,并且无所事事只是一种可能性。 请注意,这是一个折中的问题,迭代器检查开发的有效性是很好的,但是会为代码增加额外的操作。 在默认情况下,MSVS迭代器会被检查(他们会验证它们是有效的,并且在以错误的方式使用时会失败,但这也会对运行时性能产生影响。 Dinkumware(VS内部的STL)提供的解决方案(默认选中,可以通过编译器选项取消选中)实际上是一个不错的选择,用户可以选择是否需要缓慢安全的迭代器或快速安全的迭代器。 但从语言的角度来看,两者都是有效的。 Dere ...
  • 静态数据成员驻留在全局变量和普通静态变量所驻留的相同内存区域中。 它是“类内存”,可以在堆栈或堆上,具体取决于类的实例是如何创建的。 静态数据成员与全局变量没有太大区别。 但是,它由类名限定,并且可以通过public , private和protected来控制其按名称访问。 public可以访问每个人。 private将仅限制对类成员的访问,并且protected类似于private但扩展了对从具有静态数据成员的类继承的类的访问。 相反,每个人都可以通过名称访问全局变量。 可以通过同一源文件中的代码按名称 ...
  • 只有delete操作符, free存在只作为函数。 在C ++下,建议您使用new / delete over malloc() / free() 。 删除操作符中有一个内部的“魔术”。 当使用new[]创建数组时,数组的大小将存储在内存块的元数据中。 delete[]使用该信息。 所有这些当然都是编译器,操作系统,优化器和实现相关的。 There is only delete operator, free exist only as function. Under C++, you are encoura ...
  • 您想要的结构(或我认为您想要的)的标准名称是一根绳子 - 它就像一个带有统一界面的复合字符串序列。 关于绳索的其他问题有一些关于它们的讨论,以及与SGI扩展的链接。 如果您选择了现有的实现,请检查子字符串的可变性是否以您想要的方式工作 - 有些可能会实现写入时复制。 The standard name for the structure you want (or that I think you want) is a rope - it's like a compound sequence of strin ...
  • T t = x; 称为复制初始化 。 它: 它试图将x转换为T &类型的对象 然后将该对象复制到初始化对象t 。 所以你的代码声明, Point ppaa = *new Point; 在freestore / heap上创建一个Point obejct 然后复制该对象以创建堆栈对象ppaa 。 这两个对象都是不同的对象。 如您所见,执行此语句后,您没有任何指向堆对象的指针。 在这种情况下,您需要将new返回的地址传递给delete ,因为您不再拥有该地址,导致内存泄漏。 此外,请注意&ppaa不返回ne ...
  • 您可以使用英特尔创建的工具Pin监控存储器存储,读取,寄存器内容等。 这是MIT的一个项目,它模拟处理器缓存 (指令和/或数据)。 引脚用于创建详细的指令跟踪,然后将跟踪用作缓存模拟器的输入。 You can monitor memory stores, reads, contents of registers, etc. with Pin, a tool created by Intel. Here is a project from MIT that simulates a processor cach ...
  • 假设长8字节,短2字节和存储器是4字节对齐结构的大小是8字节+ 3比特+ 6比特+ 2字节= 8 + 4 = 12字节。 x [1]只是&x [1] [0]。 如果x是0xaaa,则x [1]是0xaaa +(5 * 12)= 0xaaa + 60。 所以x [1]距离x 60个字节。 Assuming long 8 bytes, short 2 bytes and memory is 4 bytes aligned size of struct is 8 byte + 3 bit + 6 bit + 2 ...

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。