Lua 基础知识

1. Lua 基本语法

  • 变量

    local num = 10   -- 声明一个局部变量
    globalVar = 20   -- 声明一个全局变量
  • 数据类型 Lua 主要有以下几种数据类型:nilbooleannumberstringtablefunctionuserdatathread

    local a = nil
    local b = true
    local c = 3.14
    local d = "hello"
    local e = {key = "value"}  -- 表(table)
    local function f() print("function") end
  • 控制结构

    -- 条件判断
    if a == nil then
        print("a is nil")
    elseif b then
        print("b is true")
    else
        print("b is false")
    end
    
    -- 循环
    for i = 1, 10 do
        print(i)
    end
    
    while num > 0 do
        print(num)
        num = num - 1
    end
  • 函数

    function add(x, y)
        return x + y
    end
    
    local result = add(2, 3)
    print(result)  -- 输出 5
  • 表(Table) Lua 中的表(Table)是唯一的数据结构,用于实现数组、字典等。

    local tbl = {name = "Lua", version = 5.3}
    print(tbl.name)  -- 输出 Lua
    
    -- 数组
    local arr = {1, 2, 3, 4, 5}
    print(arr[1])  -- 输出 1

2. Lua 脚本与 Redis 结合

在 Redis 中,可以使用EVAL命令执行 Lua 脚本,Lua 脚本可以实现复杂的原子性操作。

  • 基本用法

    -- Lua脚本
    local key = KEYS[1]
    local value = ARGV[1]
    return redis.call("SET", key, value)

    在 Redis CLI 中执行:

    EVAL "local key = KEYS[1]; local value = ARGV[1]; return redis.call('SET', key, value);" 1 mykey myvalue
  • 常用 Redis 命令

    local value = redis.call("GET", "mykey")  -- 获取键值
    redis.call("INCR", "counter")            -- 自增
    redis.call("LPUSH", "mylist", "value")   -- 列表左推
分类: 技术 标签: Lua

评论

暂无评论数据

暂无评论数据

目录