新聞中心
Redis是一個開源的,內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲系統(tǒng),可用于存儲鍵值對,列表,集合,有序集合,哈希表等多種數(shù)據(jù)結(jié)構(gòu)。它可以用作數(shù)據(jù)庫,緩存,消息隊列等。由于Redis是內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲系統(tǒng),因此它的數(shù)據(jù)庫的速度要快得多。但是,Redis也有一些限制。

其中,Redis無法在事務(wù)內(nèi)獲取值是一個重要的限制。事務(wù)提供了一種原子化的操作,能夠保證所有的操作都被成功的執(zhí)行,或者全部不被執(zhí)行,而在事務(wù)環(huán)境下,Redis無法從其他客戶端查看數(shù)據(jù)庫中的值。這種情況下,無論Redis如何設(shè)置,它都會返回null結(jié)果。
為了解決Redis無法在事務(wù)內(nèi)獲取值的問題,可以使用 Lua 腳本實現(xiàn),使用 EVALSHA 命令在事務(wù)內(nèi)執(zhí)行。 比如以下這段代碼:
eval "redis.call('get', KEYS[1])" 1 key
這段代碼的作用是獲取 Redis 中 key 對應(yīng)的值。使用Redis的 EVALSHA 命令來調(diào)用命令中定義的Lua腳本。 該Lua腳本可以使用 Redis 內(nèi)置函數(shù) get() 來獲取key對應(yīng)的值。該命令使用 1 個key。 該結(jié)果可以在事務(wù)內(nèi)獲取,從而解決了 Redis 在事務(wù)內(nèi)無法獲取值的問題。
Redis無法在事務(wù)內(nèi)獲取值是一個非常重要的限制,但是可以通過使用 Lua 腳本,使用 EVALSHA 命令在事務(wù)內(nèi)執(zhí)行,解決 Redis 在事務(wù)內(nèi)無法獲取值的問題。
成都創(chuàng)新互聯(lián)科技公司主營:網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、小程序制作、成都軟件開發(fā)、網(wǎng)頁設(shè)計、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務(wù),是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊、網(wǎng)頁、VI設(shè)計,網(wǎng)站、軟件、微信、小程序開發(fā)于一體。
當(dāng)前標(biāo)題:Redis無法在事務(wù)內(nèi)獲取值(事務(wù)內(nèi)獲取不到redis)
地址分享:http://www.fisionsoft.com.cn/article/cdjodig.html


咨詢
建站咨詢
