首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

Redis Lua 腳本開發入門:環境搭建、Hello World 與帶參數腳本實戰

     編輯:DB2 教學

Redis Lua 腳本開發入門:環境搭建、Hello World 與帶參數腳本實戰

一、Lua 環境搭建

Redis 使用 Lua 作為腳本語言。以 CentOS 7.0 + Redis 3.0.2 為例:

# 1. 下載編譯 Lua 5.3.0
curl -R -O https://www.lua.org/ftp/lua-5.3.0.tar.gz
tar zxf lua-5.3.0.tar.gz
cd lua-5.3.0
make linux

# 2. 缺少 readline 庫時
yum -y install gcc make ncurses-devel readline-devel
make linux
make install

# 3. 驗證
lua

編譯錯誤提示

Lua 安裝成功

二、Hello World 腳本

first.lua

local msg = 'Hello, World!'
return msg

兩種執行方式:

  1. redis-cli --eval /root/lua/first.lua(推薦)
  2. redis-cli EVAL "$(cat first.lua)" 0(0 表示無 KEY 參數)

兩者輸出相同:"Hello, World!"

三、帶參數腳本實戰:短鏈接生成器

second.lua

-- KEYS[1] = 計數器鍵 (links:counter)
-- KEYS[2] = Hash 表鍵 (links:urls)
-- ARGV[1] = 原始長網址
local link_id = redis.call("INCR", KEYS[1])
redis.call("HSET", KEYS[2], link_id, ARGV[1])
return link_id

執行:

# 方式一
redis-cli --eval /root/lua/second.lua links:counter links:urls , https://www.bnersoft.com/

# 方式二
redis-cli EVAL "$(cat second.lua)" 2 links:counter links:urls https://www.bnersoft.com/

驗證結果:

> KEYS *
1) "links:counter"
2) "links:urls"
> GET links:counter
"1"
> HGETALL links:urls
1) "1"
2) "https://www.bnersoft.com/"

Redis 鍵值驗證

核心概念總結

  • KEYS 數組:腳本中用 KEYS[1]、KEYS[2]... 訪問,傳入時放在 --eval 後、逗號前。
  • ARGV 數組:腳本中用 ARGV[1]... 訪問,傳入時放在逗號後。
  • redis.call():在腳本中原子性執行 Redis 命令,保證腳本整體原子性。
  • 腳本執行期間 Redis 會阻塞其他命令,邏輯需精簡高效。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved