Lua script quick start (with sample program code)

Lua scripts quick start

Lua is case sensitive


After Lua is installed on this machine, the installation steps of lua can be completed



-- This is a single line comment
-- [[
  This is a multiline comment
  This is a multiline comment
-- ]]

Reserved keywords

Reserved keyword document address


Type when variable is undeclared and uninitialized

When the variable is undeclared or declared uninitialized, the default value is nil

local variable

Variables are decorated with the local keyword, such as

-- This is a local variable
local a = 10
function max() 
    -- This is also a local variable
    local a = 10

global variable

If there is no local keyword, it is a global variable, such as

-- This is a global variable
a = 10

Note: even variables in the function are global variables as long as they are not decorated with the local keyword

function max()
    a = 10

Where are global variables stored?

Saved in a table table, Relevant_ Some descriptions of G

What are the effects of not deleting global variables?

At present, we don't see the impact of not deleting global variables in official documents and books. and book It is also proposed that users do not need to care about Lua's memory, and Lua's memory management is automatic

How to delete global variables?

Assign nil to the global variable

a = 10
-- Delete global variable
a = nil

Multiple variable initialization

Document address

The basic format of multiple variable initialization is: multiple variables are on the left of the equal sign, and the corresponding values are on the right of the equal sign

local a, b = 10, 20

When the number of values on the right is less than the number of variables on the left, no corresponding value is found. The variable is the default value nil in lua

a, b = 10

When the number of values on the right is more than the number of variables on the left, the more values will be automatically ignored

a, b = 10, 20, 30

data type

Official documents

Determine what type a variable is and use type

  • nil null

    nil should be quoted when making comparisons

    type(X) == 'nil'
  • boolean

  • Number double precision floating point number

  • string single quotation mark or double quotation mark

    Use # to calculate string length

    local string str = 'message'
    print("The string length is:", #str)

    Another common way to write concatenated strings

    local msg1 = 'msg1'
    print(msg1 .. 'append' .. 'builder')

    Note that strings written in this way can only be local variables

    String common operation documents , including search, case conversion, interception, splicing, etc

  • function

    Lua's function can return multiple values separated by commas

    function max()
        a, b = 10, 20
        return a, b
    -- Call function

    Call after function declaration

  • table

There are several other types that are not listed because they are temporarily unavailable in the current work

Conditional expression


local a, b = 10, 10
if (a == b) then
    print("if expression")

if else

local a = 10
if (a == c) then

    print("if-else expression")

If else if nesting

local a, b = 10, 10
if (a == c) then

elseif (a == d) then

elseif(a ==b ) then
    print("if-elseif expression")


Array declaration

array = {'index1', 'index3'}


while Loop

a = 10
while (a < 20) do
    a = a+1
    if (a > 18) then
    print("value of a:", a)

for loop

for i = 10, 1, -1 do
print("value of i:", i)

Combined with array, use the built-in ipairs function

local array = {'jack', 'tom', 'bob'}
for k, v in ipairs(array) do
    print("This cycle printing value: ", v)
    print('This cycle printing key:', k)

repeat... until loop

repeat is equivalent to do while. In any case, it will execute a loop at least once

b = 10
    b = b+1
    print("value of b:", b)
until(b > 15)

error handling

At present, this part has not been handled

Calling Redis in Lua script

Use redis call

local rc, rl, ll, key, value =, redis.log, redis.LOG_NOTICE, KEYS[1], ARGV[1]
local result = rc("SETEX", key, 60, value)
print("result value is:", result)

function library

Lua built-in function quick query

stay The list of class libraries at the bottom of the official document You can quickly find functions you don't know and understand, and Lua standard library listed in the official tutorial


Sample code

this paper Sample code


IDEA plug-in

  • EmmyLua , it is recommended to install the plug-in to facilitate Lua's syntax prompt and debug debugging

Keywords: Database Jedis Redis lua redisson

Added by moberemk on Sun, 19 Dec 2021 19:04:12 +0200