RedisTemplate快取用法小記

2021-08-22 08:52:48 字數 2820 閱讀 2082

2、redis的引用包:

org.springframework.data

spring-data-redis

1.8.6.release

3、redistemplate裡面有如下幾種常用的形式:

(1) string型別

redistemplate.opsforvalue()
(2) list型別

redistemplate.opsforlist()
(3) hash鍵值對

redistemplate.opsforhash()
(4) set型別

redistemplate.opsforset()
(5) 有序set型別

redistemplate.opsforzset()
4、我在開發中用過前面四個,分別簡單談一下用法:

(1) string型別:

userinfo markiffirstsync = new userinfo();

userredistemplate.opsforvalue().set(cache_key, markiffirstsync);

向redis中某個string型別的key下面插入乙個物件。
往redis中某個string型別的key下面批量插入乙個hashmap集合。
userredistemplate.opsforvalue().get(cache_name + cache_key_exist_prefix);
從redis中獲取某個key下面的某個物件,如果不存在就返回null。
listsourceidlist = new arraylist<>();
從redis中獲取多個key下面的多個物件,返回乙個list列表,但是即使對應的key下面沒有值,這個**value也會返回**,不過是null,因此要判斷是否list都為空,不能夠用isempty直接判斷,而應該乙個乙個的判斷是否為空,才能判斷整體為空。
(2) list型別

listremainorgnodes = new arraylist<>();

redistemplate.opsforlist().leftpushall(cache_key, remainorgnodes);

向redis的某個key下面的list列表裡面插入乙個list列表,不會去重。
listlastremainorgnodelist = redistemplate.opsforlist().range(cache_name + cache_remain_key_prefix, 0, -1);
從redis中取出某乙個key下面的list列表, 0表示從列表的第0個元素開始取,-1表示直取到倒數第乙個元素,也就是整個列表的所有元素都取出來。
(3) hash型別

mapvalue = new hashmap<>();

userhashredistemplate.opsforhash().putall(key, value );

向redis中某個key下面插入key,hash的map。
userhashredistemplate.opsforhash().delete(key, sourceorgid);
從redis中某個key下面刪除掉某個hashkey所在的value。
userhashredistemplate.opsforhash().get(key, hashkey);
從redis中某個key下面得到這個key對應的hashkey的value值。前乙個key只能是string型別,hashkey可以宣告為自己需要的型別。
mapuserorgmap = userhashredistemplate.opsforhash().entries(getusernodecachekey(syncusernode.getsourceid()));
從redis中得到某個key下面的所有的hashkey和hashvalue值。
(4) set型別

userrolesetredistemplate.opsforset().add(key, cloudtorgroleinfo);
向redis的某個key下面的set列表裡面插入乙個元素,回去重,且無序。
cloudtorgroleset = userrolesetredistemplate.opsforset().members(key);
從redis的某個key下面得到set集合的所有元素,返回的也是乙個set集合。
userrolesetredistemplate.opsforset().remove( key, subdeleteorgroleuserarray[i]);
從redis的某個key下面的set集合中刪除掉乙個元素。
5、具體的redis命令列操作可以參考:

redistemplate指定快取某個資料庫

我用的是springboot 自己配置了乙個redistempate的實現 configuration public class qi7redisconfig 接下來就是自動注入了 自動注入 注意泛型需要保持一致 autowired private redistemplate coderedis p...

RedisTemplate操作Redis常用

redistemplate中定義了對5種資料結構操作 redistemplate.opsforvalue 操作字串 redistemplate.opsforhash 操作hash redistemplate.opsforlist 操作list redistemplate.opsforset 操作se...

redistemplate事務實踐

code public object testredismulti catch interruptedexception e now string operations.opsforvalue get testredismulti system.out.println now object rs o...