java實(shí)現(xiàn)redis存放list Redis怎么存儲(chǔ)List對(duì)象比較好?
Redis怎么存儲(chǔ)List對(duì)象比較好?方案1:直接使用列表結(jié)構(gòu),其中存儲(chǔ)二進(jìn)制任務(wù)bean信息。這樣查詢(xún)所有任務(wù)方便,查詢(xún)單個(gè)任務(wù)速度慢,刪除和修改狀態(tài)麻煩;方案二:直接使用哈希結(jié)構(gòu),哈希鍵存儲(chǔ)任務(wù)I
Redis怎么存儲(chǔ)List對(duì)象比較好?
方案1:
直接使用列表結(jié)構(gòu),其中存儲(chǔ)二進(jìn)制任務(wù)bean信息。這樣查詢(xún)所有任務(wù)方便,查詢(xún)單個(gè)任務(wù)速度慢,刪除和修改狀態(tài)麻煩;
方案二:
直接使用哈希結(jié)構(gòu),哈希鍵存儲(chǔ)任務(wù)ID,值存儲(chǔ)二進(jìn)制bean信息。這樣,可以查詢(xún)所有任務(wù)和單個(gè)任務(wù)的業(yè)務(wù)和刪除任務(wù)的速度都很快,但修改狀態(tài)必須先取出數(shù)據(jù),再修改再插入
怎么在redis里面存list?
以PHP為例:$redis=new redis()$redis->connect(“127.0.0.1”,6379)$redis->set(“arr”,array(1,2,3,4,5),3600)$STR=$redis->get(“arr”)printur($STR)安裝了redis插件并啟用了服務(wù)器redis,就可以運(yùn)行上面的代碼了。您會(huì)發(fā)現(xiàn)打印的結(jié)果是數(shù)組。這意味著redis不能存儲(chǔ)數(shù)組類(lèi)型的變量。可以將數(shù)組轉(zhuǎn)換為字符串,然后進(jìn)行存儲(chǔ)。當(dāng)它被使用時(shí),它可以被取出,然后轉(zhuǎn)換成一個(gè)數(shù)組以便重用。
redis list如何去重?
最好的方法是使用set,因?yàn)閟et中存儲(chǔ)的數(shù)據(jù)不重復(fù)。
如果不想使用set,可以執(zhí)行以下操作。
Listlistutmp=newarraylist()//創(chuàng)建一個(gè)列表集合,用于臨時(shí)存儲(chǔ)非重復(fù)列表元素。
對(duì)于(Objectobj:列表){
//這里可以根據(jù)需要添加強(qiáng)制轉(zhuǎn)換。
//如果列表中存儲(chǔ)了用戶(hù)對(duì)象,則添加useru=(user)obj
如果(!列表)tmp.包含(obj)){//注意contains方法是通過(guò)equals方法進(jìn)行比較的,因此您需要根據(jù)自己的需要查看是否需要重寫(xiě)list對(duì)象中的equals方法。
列表utmp添加(obj)//如果上面添加了強(qiáng)制轉(zhuǎn)換,則應(yīng)該在此處寫(xiě)入列表utmp添加(u)
}
}