redis2.6新特性之eval命令

redis2.6新特性之eval命令redis


eval原型 EVAL script numkeys key [key ...] arg [arg ...]編程

Available since 2.6.0.數組

時間複雜度:取決於執行的腳本。服務器


EVAL和EVALSHA的都是Redis從2.6.0版開始使用Lua解釋的腳本。EVAL的第一個參數是一個Lua5.1腳本。該腳本並不須要定義一個Lua函數(也不該該)。這僅僅是一個Lua程序,將運行在Redis的服務器的背景下。eval函數的第二個參數是參數的個數以下腳本(從第三個參數)表明Redis的鍵名。此參數可被訪問Lua中使用的按鍵一個基於陣列的形式(所以KEYS[1]鍵[2],...)中的全局變量。 全部的額外的參數不該該表明的鍵名,並使用ARGV全局變量,能夠訪問Lua中,發生了什麼鍵(ARGV[1],ARGV[2],...)很是類似。 上面說什麼,下面的例子應該澄清:編程語言

<!-- lang: lua -->
> eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
  1. "key1"函數

  2. "key2"lua

  3. "first"code

  4. "second" 注:正如你所看到的Lua陣列返回Redis的多散答覆,這是一個Redis的返回類型,您的客戶端庫可能會在你的編程語言轉換成一個數組類型。 儘可能使用調用lua腳本中的兩個redis命令的函數:ip

    redis.call() redis.pcall()原型

相關文章
相關標籤/搜索