一,表類型json
能夠看成數組或者Map來理解,好比:數組
1:a = {},報一個空表賦值給adom
2:a[key]=value,把value賦值給表a中的字段key函數
3:a={ key1=‘value1’, key2=‘value2’ }調試
4:引用的時候,能夠使用. 操做符,如: a.key1code
5:若是用索引來引用,跟數組是同樣的,如:a[1],注意Lua的索引是從1開始排序
6:能夠使用加強for循環來遍歷數組,如:索引
for k,v in ipairs(a) doip
print(k)rem
print(v)
end
其中的ipairs是Lua的內置函數,實現相似迭帶器的功能,從索引1開始遞增遍歷到最後一個不爲nil的
整數索引。相似的還有一個pairs,用來便利非數組的表值,它會遍歷全部值不爲nil的索引。
7:也能夠使用for循環來按照索引遍歷數組,如:
for i=1,#a do
end
二,函數
1:定義格式爲:
function(參數列表)
end
2:注意:就算沒有參數,括號也不能省略
3:形參實參個數不用徹底對應,若是想要獲得全部的實參,能夠把最後一個形參設置成…
4:函數內返回使用return
三, Lua的標準庫
Lua的標準庫提供了不少使用的功能,Redis支持其中大部分,主要有:
1:Base:提供一些基礎函數
2:String:提供用於操做字符串的函數
3:Table:提供用於表操做的函數
4:Math:提供數據計算的函數
5:Debug:提供用於調試的函數
四,在Redis中經常使用的標準庫函數
1:string.len(string)
2:string.lower(string)
3:string.upper(string)
4:string.rep(s, n):返回重複s字符串n次的字符串
5:string.sub(string,start[,end]),索引從1開始,-1表示最後一個
6:string.char(n…):把數字轉換成字符
7:string.byte (s [, i [, j]]):用於把字符串轉換成數字
8:string.find (s, pattern [, init [, plain]]):查找目標模板在給定字符串中出現的位
置,找到返回起始和結束位置,沒找到返回nil
9:string.gsub (s, pattern, repl [, n]):將全部符合匹配模式的地方都替換成替代字符
串。並返回替換後的字符串,以及替換次數。四個參數,給定字符串,匹配模式、替代字
符串和要替換的次數
10:string.match (s, pattern [, init]):將返回第一個出如今給定字符串中的匹配字符
串,基本的模式有:. 全部字符,%a字母,%c控制字符,%d數字,%l小寫字母,%p 標點符
號字符,%s 空格,%u 大寫字母,%w 文字數字字符,%x 16進制數字等
11:string.reverse (s):逆序輸出字符串
12:string.gmatch (s, pattern):返回一個迭代器,用於迭代全部出如今給定字符串中的匹
配字符串
13:table.concat(table[,sep[,i[,j]]]):將數組轉換成字符串,以sep指定的字符串分割,
默認是空,i和j用來限制要轉換的表索引的範圍,默認是1和表的長度,不支持負索引
14:table.insert(table,[pos,]value):向數組中插入元素,pos爲指定插入的索引,默認是
數組長度加1,會將索引後面的元素順序後移
15:table.remove(table[,pos]):從數組中彈出一個元素,也就是刪除這個元素,將後面的
元素前移,返回刪除的元素值,默認pos是數組的長度
table.sort(table[,sortFunction]):對數組進行排序,能夠自定義排序函數
16:Math庫裏面常見的:abs、ceil、floor、max、min、pow、sqrt、sin、cos、tan等
17:math.random([m[,n]]):獲取隨機數,若是是同一個種子的話,每次得到的隨機數是同樣
的,沒有參數,返回0-1的小數;只有m,返回1-m的整數;設置了m和n,返回m-n的整數
18:math.randomseed(x):設置生成隨機數的種子
五,其它庫
除了標準庫外,Redis還會自動加載cjson和cmsgpack庫,以提供對Json和MessagePack的支
持,在腳本中分別經過cjson和cmsgpack兩個全局變量來訪問相應功能
1:cjson.encode(表):把表序列化成字符串
2:cjson.decode(string):把字符串還原成爲表
3:cmsgpack.pack(表):把表序列化成字符串
4:cmsgpack.unpack(字符串):把字符串還原成爲表