中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

redis~lua腳本的使(shi)用

通(tong)過(guo)lua腳本(ben)來運行redis命令主要體現在批(pi)量(liang)執(zhi)(zhi)行和跨語言(yan)方面,我們可以通(tong)過(guo)redis.call()函數來執(zhi)(zhi)行lua腳本(ben),下面介紹幾個lua里的(de)參數

eval lua-script key-num [key1 key2 key3 ....] [value1 value2 value3 ....]
  1. eval代表執行Lua語言的命令。
  2. lua-script代表Lua語言腳本。
  3. key-num表示參數中有多少個key,需要注意的是Redis中key是從1開始的,如果沒有key的參數,那么寫0。
  4. [key1 key2 key3…]是key作為參數傳遞給Lua語言,也可以不填,但是需要和key-num的個數對應起來。
  5. [value1 value2 value3 …]這些參數傳遞給Lua語言,他們是可填可不填的。

實例

在redis里(li)添加一個foo,值(zhi)是lind

 eval "return redis.call('set',KEYS[1],ARGV[1])" 1  foo value 

下面這個實例是實現分布鎖的lua腳(jiao)本

local lockClientId = redis.call('GET', KEYS[1])\n" +
					"if lockClientId == ARGV[1] then\n" +
					"  redis.call('PEXPIRE', KEYS[1], ARGV[2])\n" +
					"  return true\n" +
					"elseif not lockClientId then\n" +
					"  redis.call('SET', KEYS[1], ARGV[1], 'PX', ARGV[2])\n" +
					"  return true\n" +
					"end\n" +
					"return false"

這個腳本與開發(fa)語言沒有關系。

posted @ 2020-08-20 15:55  張占嶺  閱讀(614)  評論(0)    收藏  舉報