一起寫redis指令碼

來源:互聯網
上載者:User

標籤:redis   lua   redis指令碼   lua與redis   

一、redis指令碼環境

要寫redis的指令碼,首先應該搭建好它的指令碼環境。redis使用lua作為其指令碼語言。所以搭建lua環境成了首要工作。

環境:centos7.0
redis:3.0.2

1.1 安裝lua環境

[[email protected] lua]# curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz[[email protected] lua]# tar zxf lua-5.3.0.tar.gz[[email protected] lua]# cd lua-5.3.0[[email protected] lua]# make linux

執行到這裡的時候,報了一個錯,

說缺少什麼readline。缺少,就去安裝它吧。

1.2 安裝readlin

[[email protected] lua]# yum -y install gcc make ncurses-devel readline-devel# 執行完以上操作後,繼續以下命令[[email protected] lua]# make linux[[email protected] lua]# make install# 使用lua命令,查看是否安裝成[[email protected] lua]# lua

看到,則表示安裝成功了。

二、hello world指令碼

從經典的hello world開始我們的第一個redis指令碼吧。
首先在某一個目錄下建立一個lua檔案,用於存放指令碼。
2.1 lua指令碼內容

local msg = ‘Hello, World!‘;return msg;

該指令碼就是將hello world賦值給msg,然後返回回來。
2.2 執行這個指令碼
在執行之前,首先確保redis的服務已經開啟。然後使用一下命令進行執行。

redis-cli –eval /root/lua/first.lua

命令解釋:–eval告訴redis-cli讀取並運行後面的Lua指令碼,後面是存放的lua檔案路徑
這是一種執行方式,還有另外一種執行方式。

redis-cli EVAL “$(cat first.lua)” 0

兩種執行方式,都會得到一樣的結果。第二種方式中,相當於再再redis的命令中執行了一條shell指令碼。cat first.lua的意思就是擷取該檔案內容並顯示出來。然後0表示使用了redis的鍵的數字型大小,該指令碼沒有使用故設定為0。
個人更傾向於第一種執行方式。

三、帶參數的redis指令碼

3.1 指令碼內容

local link_id = redis.call("INCR", KEYS[1])redis.call("HSET",KEYS[2],link_id,ARGV[1])return link_id

指令碼作用描述:redis通過incr命令將第一個傳入的key值進行增加1,然後通過hset將第二個傳入的鍵,以及通過incr得到的值作為欄位,然後argv的第一個參數作為值,存入到hashtable中。並且在最後返回存入鍵的欄位值。
3.2 執行指令碼。
方式一:

redis-cli –eval /root/lua/second.lua links:counter links:urls , http://www.bnersoft.com/

方式二:

redis-cli eval “$(cat second.lua)” 2 links:counter links:urls http://www.bnersoft.com/

兩種方式,任選一種,然後使用redis的內建用戶端,可以清晰看到redis中新增加了兩個鍵。

[root@localhost lua]# KEYS *


然後通過相關命令,可以查看其中的值,這裡就不在進行示範了,大家可以自己實驗一下。

PS:初學redis,不確之處,望指教,也希望本文對大家有一點點協助。

一起寫redis指令碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.