菜雞的redis之路(一) String

2021-08-24 20:23:57 字數 3176 閱讀 4050

redistemplate.opsforvalue();//操作字串

redistemplate.opsforhash();//操作hash

redistemplate.opsforlist();//操作list

redistemplate.opsforset();//操作set

redistemplate.opsforzset();//操作有序set

1.set(k key,v value),新增乙個字串型別的鍵值對,es:redistemplate.opsforvalue().set(「key」,」「value)

2.get(object key),獲取key鍵對應的value,es:redistemplate.opsforvalue().get(「key」)

4.get(k key, long start, long end),擷取key對應的value字串,包含結束下標,

es:redistemplate.opsforvalue().get(「key」,0,3)

5.getandset(k key, v value),獲取原來的值並重新賦值,es:redistemplate.opsforvalue().getandset(「key」,「other」)

6.setbit(k key, long offset, boolean value),key鍵對應的值value對應的ascii碼,在offset的位置(從左向右數)變為value

es: template.opsforvalue().set("bittest","a");

// 'a' 的ascii碼是 97。轉換為二進位制是:01100001

// 'b' 的ascii碼是 98 轉換為二進位制是:01100010

// 'c' 的ascii碼是 99 轉換為二進位制是:01100011

//因為二進位制只有0和1,在setbit中true為1,false為0,因此我要變為'b'的話第六位設定為1,第七位設定為0

template.opsforvalue().setbit("bittest",6, true);

template.opsforvalue().setbit("bittest",7, false);

system.out.println(template.opsforvalue().get("bittest"));

7.getbit(k key, long offset),判斷指定的位置ascii碼的bit位是否為1,es:redistemplate.opsforvalue().getbit(「stringvalue」,1)

8.size(k key),獲取指定字串的長度,es:redistemplate.opsforvalue().size(「stringvalue」)

9.increment(k key, double delta),以增量的方式將double值儲存在變數中,如果原來的key對應的值不是數值,會報錯

10.increment(k key, long delta) 同上

11.setifabsent(k key, v value),不存在則新增(返回true),存在則不改變原來的值(返回false),es:redistemplate.opsforvalue().setifabsent(「key」,」value」)

12.set(k key, v value, long timeout, timeunit unit),設定鍵值對的過期時間es:redistemplate.opsforvalue().set(「name」,」tom」,10, timeunit.seconds),10秒之內get(「name」)有值,10秒之後為null

13.set(k key, v value, long offset),覆蓋從指定位置開始的值

使用:template.opsforvalue().set("key","hello world");

template.opsforvalue().set("key","redis", 6);

system.out.println("***************"+template.opsforvalue().get("key"));

結果:hello redis

14.

multiset(map<? extends k,? extends v> map),設定map集合到redis

es:map valuemap = new hashmap();

valuemap.put("valuemap1","map1");

valuemap.put("valuemap2","map2");

valuemap.put("valuemap3","map3");

redistemplate.opsforvalue().multiset(valuemap);

15.

multiget(collectionkeys),根據集合取出對應的value值

es://根據list集合取出對應的value值

list paralist = new arraylist();

paralist.add("valuemap1");

paralist.add("valuemap2");

paralist.add("valuemap3");

listvaluelist = redistemplate.opsforvalue().multiget(paralist);

16.

multisetifabsent(map<? extends k,? extends v> map),如果對應的map集合名稱不存在,則新增(返回true),如果存在則不做修改(返回false)
17.

map valuemap = new hashmap();  

valuemap.put("valuemap1","map1");

valuemap.put("valuemap2","map2");

valuemap.put("valuemap3","map3");

redistemplate.opsforvalue().multisetifabsent(valuemap);

參考:

1.

2.

菜雞高階之路

記錄一下自己一點大學獲獎經歷 2018.10 山東省高校機械人大賽 二等獎2018.12 青島大學電子設計競賽 一等獎2018.12 青島大學第一屆程式設計大賽 冠軍2019.3 第十屆藍橋杯山東省賽 一等獎2019.4 電腦科學與技術學院圖靈杯程式設計大賽 冠軍2019.5 山東省acm程式設計競...

菜雞的自救之路

博主研二在讀,渾渾噩噩,一無所學。一朝面臨畢業求職,惶惶恐恐,雖無大志,但也不甘墮落。於是今日開啟菜雞的自我拯救之路,爭取通過數月乃至一年的努力,不求成為大神,起碼脫離菜雞稱號,等來年春招,在面臨殘酷的競爭時不至於任人宰割。首先明確需要點亮的技能樹都有哪些 畢業要緊,最理想的情況當然是在滿足科研專案...

乙隻菜雞的半年技術部落格之路

然而重度拖延症的我一直帶著這個想法很久也沒有付諸行動,直到今年,我才將這個事情提上日程,逼著自己多學習,多記錄,多分享,所以就這樣開始了旅途 基礎篇 sringboot篇 docker容器篇 容器集群篇 綜合技術棧篇 趣味技術篇 最終確定了現在的這個personal blog 雖然現有的部落格平台寫...