Redis Scripting
Redis scripting được sử dụng để thực thi các script bằng thông dịch Lua (Lua interpreter). Nó được tích hợp vào Redis bắt đầu từ phiên bản 2.6.0. Lệnh được sử dụng cho scripting là lệnh EVAL.
Cú pháp:
redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]
Ví dụ:
redis 127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1
key2 first second
1) "key1"
2) "key2"
3) "first"
4) "second"
Giải thích:
- Bên trong quote "" là nội dung của lua script (viết bằng ngôn ngữ LUA, bạn có thể tham khảo về LUA tại đây).
- Số 2 đằng sau quote là số parameter mô tả
Redis key names
(ở đây chính là là key1 và key2) - Sau key1 và key2 sẽ là các parameter không mô tả key names
- Các parameter mô tả keynames sẽ được access bên trong LUA script dưới hình thức một phần tử trong array
KEY
, và các parameter còn lại sẽ được access bên trong LUA script dưới dạng một phần tử trong arrayARGV
- Tại sao lại không dùng chung parameter cho
KEY
vàARGV
??? Câu trả lời là khi bạn set key cho redis bên trong LUA script thì key đó sẽ chỉ dùng được thông qua KEY parameter
Các command cơ bản của Redis Scripting:
STT | Command | Mô tả |
---|---|---|
1 | EVAL script numkeys key [key ...] arg [arg ...] | Thực thi Lua script |
2 | EVALSHA sha1 numkeys key [key ...] arg [arg ...] | Thực thi Lua script |
3 | SCRIPT EXISTS script [script ...] | Kiểm tra tồn tại của một script trong cache |
4 | SCRIPT FLUSH | Xóa toàn bộ script trong cache |
5 | SCRIPT KILL | Kill việc thực thi một script |
6 | SCRIPT LOAD script | Load một Lua script từ cache |
No Comments