为了账号安全,请及时绑定邮箱和手机立即绑定

Redis的Lua脚本编程

拿客 JAVA开发工程师
难度初级
时长 1小时22分
学习人数
综合评分8.50
18人评价 查看评价
8.3 内容实用
8.9 简洁易懂
8.3 逻辑清晰
  • 第三个阶段

    查看全部
  • 第二阶段架构

    查看全部
  • 第一阶段结构

    查看全部
  • 为什么要学习Redis中的Lua的使用

    查看全部
  • 视频中的代码。

    ---
    --- Generated by EmmyLua(https://github.com/EmmyLua)
    --- DateTime: 2019/10/2 22:18
    ---
    local KEYS = { "list" }
    local ARGV = { "N", 4, -1 }
    local list = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
    
    function slice(list_key, argv_list)
        -- 判断是否需要反转
        local reverse_flag = #argv_list >= 3 and type(ARGV[3]) == "number" and ARGV[3] < 0
        local start = 1
        if type(ARGV[1]) == "number" then
            start = ARGV[1]
        end
        local end_ = #list
        if type(ARGV[2]) == "number" then
            end_ = ARGV[2]
        end
        local step = 1
        if #argv_list >= 3 and type(ARGV[3]) == "number" then
            step = ARGV[3]
        end
    
        --存储分片结果
        local result = {}
        --添加分片结果时使用的索引
        local result_index = 1
        print("start: " .. start .. " end_: " .. end_ .. " step:" .. step)
        local for_start = start
        local for_end = end_
        if reverse_flag then
            for_start = #list
            for_end = for_end + 1
        else
            for_end = for_end - 1
        end
        print("for_start: " .. for_start .. " for_end: " .. for_end .. " step:" .. step)
        for var = for_start, for_end, step do
            result[result_index] = list[var]
            result_index = result_index + 1
        end
        return result
    end
    
    local result_list = slice(KEYS, ARGV)
    for i, v in pairs(result_list) do
        print(i .. "-->" .. v)
    end


    查看全部
  • redis-cli

    KEYS *

    EVAL "redis.call('SET','TestImooc','test')" 0

    GET TestImooc

    EVAL "return redis.call('SET','TestImooc','test1')" 0

    GET TestImooc

    EVAL "return redis.call('SET','Test)"

    查看全部
  • lua中循环写法:

    start=7

    end_=8

    step=1

    for var =start,end_,step do

    print(var)

    end 


    查看全部
  • redis中使用lua脚本命令:

    script load

    script flush

    script exists

    查看全部
  • redis.call()

    redis.pcall()

    区别pcall会捕捉异常!

    查看全部
  • redis中用命令调用lua:

    EVAL "redis.call('SET','testImooc','test')" 0

    get testImooc 

    'test'

    127.0.0.1:6379> EVAL "return redis.call('SET',KEYS[2],ARGV[3])" 3 imooc1 imooc2 imooc3 imooc4 imooc5 imooc6 imooc7

    OK

    127.0.0.1:6379> get imooc2

    "imooc6"


    查看全部
首页上一页12下一页尾页

举报

0/150
提交
取消
课程须知
1、想要了解Redis的Lua脚本编程 2、有一定的Redis基础
老师告诉你能学到什么?
1、明白Redis的Lua脚本编程是什么; 2、了解为什么要使用Redis的Lua脚本编程; 3、熟悉如何使用Redis的Lua脚本编程。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!