-
以上錯(cuò)誤范例的演示:庫(kù)存減法
?- get 和 set 分成了兩步,先拿到庫(kù)存,再進(jìn)行計(jì)算,再寫回去
?- 開啟多個(gè)線程同時(shí)運(yùn)行以上操作,發(fā)現(xiàn)結(jié)果不符合預(yù)期
?- 因?yàn)?線程1讀的時(shí)候,線程n也在讀,而不是等線程1寫回再讀的,因此計(jì)算結(jié)果覆蓋了線程1的計(jì)算結(jié)果。
查看全部 -
分布式鎖的意義:每個(gè)業(yè)務(wù)之間有相關(guān)操作時(shí)需要有統(tǒng)一協(xié)調(diào)的措施
(比如,庫(kù)存系統(tǒng),訂單系統(tǒng),它們都會(huì)修改庫(kù)存)
查看全部 -
Lua 環(huán)境搭建
Lua 官網(wǎng)
Windows 版 Lua
下載地址 Lua IDE
查看全部 -
通過(guò) Lua 怎么解決了該問(wèn)題
查看全部 -
Redis 運(yùn)行機(jī)制可能帶來(lái)的問(wèn)題
查看全部 -
Redis 運(yùn)行機(jī)制
查看全部 -
為什么要學(xué)習(xí) Redis 中 Lua 的使用
Redis 運(yùn)行機(jī)制
Redis 運(yùn)行機(jī)制帶來(lái)的問(wèn)題
通過(guò) Lua 怎么解決了這些問(wèn)題
查看全部 -
課程概覽
查看全部 -
開發(fā)工具箱的網(wǎng)站,不管多長(zhǎng)的字符串,都會(huì)被加密成一定長(zhǎng)的密鑰
查看全部 -
第四個(gè)階段
查看全部 -
第三個(gè)階段
查看全部 -
第二階段架構(gòu)
查看全部 -
第一階段結(jié)構(gòu)
查看全部 -
為什么要學(xué)習(xí)Redis中的Lua的使用
查看全部 -
視頻中的代碼。
--- ---?Generated?by?EmmyLua(https://github.com/EmmyLua) ---?DateTime:?2019/10/2?22:18 --- local?KEYS?=?{?"list"?} local?ARGV?=?{?"N",?4,?-1?} local?list?=?{?1,?2,?3,?4,?5,?6,?7,?8,?9,?10?} function?slice(list_key,?argv_list) ????--?判斷是否需要反轉(zhuǎn) ????local?reverse_flag?=?#argv_list?>=?3?and?type(ARGV[3])?==?"number"?and?ARGV[3]?<?0 ????local?start?=?1 ????if?type(ARGV[1])?==?"number"?then ????????start?=?ARGV[1] ????end ????local?end_?=?#list ????if?type(ARGV[2])?==?"number"?then ????????end_?=?ARGV[2] ????end ????local?step?=?1 ????if?#argv_list?>=?3?and?type(ARGV[3])?==?"number"?then ????????step?=?ARGV[3] ????end ????--存儲(chǔ)分片結(jié)果 ????local?result?=?{} ????--添加分片結(jié)果時(shí)使用的索引 ????local?result_index?=?1 ????print("start:?"?..?start?..?"?end_:?"?..?end_?..?"?step:"?..?step) ????local?for_start?=?start ????local?for_end?=?end_ ????if?reverse_flag?then ????????for_start?=?#list ????????for_end?=?for_end?+?1 ????else ????????for_end?=?for_end?-?1 ????end ????print("for_start:?"?..?for_start?..?"?for_end:?"?..?for_end?..?"?step:"?..?step) ????for?var?=?for_start,?for_end,?step?do ????????result[result_index]?=?list[var] ????????result_index?=?result_index?+?1 ????end ????return?result end local?result_list?=?slice(KEYS,?ARGV) for?i,?v?in?pairs(result_list)?do ????print(i?..?"-->"?..?v) end
查看全部 -
Redis中使用Lua的優(yōu)點(diǎn)
將命令一次性發(fā)送到redis服務(wù)器,也可以將命令緩存起來(lái),保證所有客戶端調(diào)用的都是一致的命令,方便維護(hù)
減小網(wǎng)絡(luò)傳輸開銷
保證redis命令執(zhí)行的原子性
查看全部 -
redis-cli
KEYS *
EVAL "redis.call('SET','TestImooc','test')" 0
GET TestImooc
EVAL "return redis.call('SET','TestImooc','test1')" 0
GET TestImooc
EVAL "return redis.call('SET','Test)"
查看全部 -
lua中循環(huán)寫法:
start=7
end_=8
step=1
for var =start,end_,step do
print(var)
end?
查看全部 -
redis中使用lua腳本命令:
script load
script flush
script exists
查看全部 -
redis.call()
redis.pcall()
區(qū)別pcall會(huì)捕捉異常!
查看全部 -
redis中用命令調(diào)用lua:
EVAL "redis.call('SET','testImooc','test')" 0
get testImooc?
'test'
127.0.0.1:6379> EVAL "return redis.call('SET',KEYS[2],ARGV[3])" 3 imooc1 imooc2 imooc3 imooc4 imooc5 imooc6 imooc7
OK
127.0.0.1:6379> get imooc2
"imooc6"
查看全部 -
ubuntu 安裝lua? apt install lua5.2 即可, 使用的話, lua filename
直接lua回車, 進(jìn)入交互式模式
查看全部 -
基本語(yǔ)法詳見LuaAPI:
中文API地址:
https://cloudwu.github.io/lua53doc/manual.html
https://www.runoob.com/lua/lua-tutorial.html
查看全部 -
1、Lua介紹
????官網(wǎng):
????????http://www.lua.org/
????特點(diǎn):
????????輕量級(jí)、嵌入式的腳本語(yǔ)言
????????穩(wěn)定的、成熟的(起始于1993年)、效率高、可擴(kuò)展、強(qiáng)大且簡(jiǎn)單
????Windows版的Lua下載地址:
????????http://luabinaries.sourceforge.net/download.html
????????(官網(wǎng)訪問(wèn)不穩(wěn)定,備用地址:https://download.csdn.net/download/javafd/10632132)
????????選擇lua-5.3.4_Win64_bin.zip下載,下載后解壓即可
2、編寫Hello Imooc
????2.1 創(chuàng)建文件Hello.lua,編輯文件內(nèi)容:print "Hello Lua"
????2.2打開命令行,使用lua53.exe執(zhí)行Hello.lua:lua53.exe Hello.lua
????2.3命令行打印Hello Lua,代表成功
4、IDE:ZeroBraneStudioEduPack
????下載地址:
????https://studio.zerobrane.com/support
????(官網(wǎng)訪問(wèn)不穩(wěn)定,備用地址:https://download.csdn.net/download/javafd/10632132)
????解壓或安裝即可使用。
????
查看全部 -
為什么要學(xué)習(xí)Redis中的Lua的使用
1、Redis的運(yùn)行機(jī)制
Redis的單線程執(zhí)行的保證了數(shù)據(jù)的原子性
2、Redis的運(yùn)行機(jī)制帶來(lái)的問(wèn)題
當(dāng)多客戶端并發(fā)的多次操作一個(gè)key,執(zhí)行順序可能會(huì)錯(cuò)亂,導(dǎo)致最終數(shù)據(jù)出現(xiàn)錯(cuò)誤
3、通過(guò)Luau怎么解決這個(gè)問(wèn)題
Luau打包執(zhí)行一系列命令,保障執(zhí)行順序不會(huì)錯(cuò)亂,以解決上述問(wèn)題
查看全部
舉報(bào)