小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

JedisDataException

 印度阿三17 2021-02-14

redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value

我們來(lái)探究一下這個(gè)錯(cuò)誤,一步一步分析 首先看一下異常名稱 “JedisDataException”,很明顯,是Jedis數(shù)據(jù)異常,
再看后面提示 “對(duì)持有錯(cuò)誤類型值的鍵執(zhí)行的錯(cuò)誤類型操作” ,異常錯(cuò)誤原因就已經(jīng)出來(lái)了
操作的類型與當(dāng)前的類型不一致導(dǎo)致的,或者說(shuō)使用了不同類型下的命令,操作了類外一種類型的數(shù)據(jù)(也就是說(shuō)使用了string的命令,操作了set的數(shù)據(jù))。

打個(gè)比方:
我們這里計(jì)算一個(gè)秒殺事件,計(jì)算庫(kù)存,庫(kù)存是String對(duì)象

public static boolean dosk(String proId) throws IOException {


String proIdKey = "sk:"   proId  ":kc";  //這里計(jì)算的是一個(gè)庫(kù)存量的key
Jedis jedis = new Jedis("192.168.4.176", 6379);
//監(jiān)視庫(kù)存
jedis.watch(proIdKey );
//獲取庫(kù)存
String kc = jedis.get(proIdKey );

省略一大段無(wú)關(guān)代碼............

//庫(kù)存大于0,減庫(kù)存,加人
Transaction transaction = jedis.multi(); //開啟事務(wù)

(異常報(bào)錯(cuò)點(diǎn))
transaction.decr(proIdKey ); //減去庫(kù)存   (異常報(bào)錯(cuò)點(diǎn))

List<Object> exec = transaction.exec(); //執(zhí)行

transaction.decr(proIdKey );
為什么這段代碼是異常報(bào)錯(cuò)點(diǎn)呢?因?yàn)檫@里操作了一個(gè)proIdKey對(duì)象,是String類型的,用的是decr命令(String的命令)
我們轉(zhuǎn)過(guò)來(lái)看一下自己redis里面怎么設(shè)置數(shù)據(jù)的

127.0.0.1:6379> sadd sk:0101:kc 10
(integer) 1

redis設(shè)置的 proIdKey(庫(kù)存) 是set類型,所以我在操作
proIdKey(庫(kù)存)的時(shí)候,也就報(bào)錯(cuò)了,主要原因是,我eclipse里面使用的是 decr 命令(String類型的命令)
但是我們操作的數(shù)據(jù)(proIdKey)在redis里面是以set類型存放的,所以,造成使用了不同類型下的命令,操作了類外一種類型的數(shù)據(jù)(也就是說(shuō)使用了string的命令,操作了set的數(shù)據(jù))。

所以只要將數(shù)據(jù)類型改一下就可以了,要么改redis存放的數(shù)據(jù)類型,要么改eclipse操作的數(shù)據(jù)類型,然后使用正確的命令去操作。
我這里只要把庫(kù)存的類型在redis里面改為String就可以了

127.0.0.1:6379> set sk:0101:kc 10
OK

希望我的解答對(duì)大家有幫助,有疑問或者建議可以評(píng)論噢?。?!

來(lái)源:https://www./content-4-857451.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多