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

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


咨詢
建站咨詢
