redis在實際工作的幾種使用方法,其中最吸引筆者的是redis在分布式鎖方面的應用。在第二段**中我會貼出筆者在練習中蘇哦用的**
/**
* 功能描述: redis的幾種常用工具方法,其中redis分布式鎖注意setifabsent方法的使用
* @param:
* @return:
* @auther: rhine
* @date: 2018/11/12 23:42
*/public class redisutil
}/**
* 批量刪除key
* @param pattern
*/public void removepattern(final string pattern)
}/**
* 刪除對應的value
* @param key
*/public void remove(final string key)
}/**
* 判斷快取中是否有對應的value
* @param key
* @return
*/public boolean exists(final string key)
/*** 讀取快取
* @param key
* @return
*/public object get(final string key)
/*** 寫入快取
* @param key
* @param value
* @return
*/public boolean set(final string key,object value)catch (exception e)
return result;
}/**
* 寫入快取
* @param key
* @param value
* @param expiretime
* @return
*/public boolean set(final string key,object value,long expiretime)catch (exception e)
return result;
}/**
* 寫入快取
* 當且僅當key不存在,若給定的key已經存在,則不做任何動作
* @param key
* @param value
* @return
*/public boolean setifabsent(final string key,object value)catch (exception e)
return result;
}/**
* 寫入快取
* 當且僅當key不存在,若給定的key已經存在,則不做任何動作
* @param key
* @param value true:設定成功; false:設定失敗,已經存在
* @param expiretime
* @return
*/public boolean setifabsent(final string key,object value,long expiretime)
}catch (exception e)
return result;
}/**
* 利用指定key作為redis更新鎖(鎖有過期時長)
* @param key
* @param cacheseconds
* @return 獲得鎖則返回true,否則返回false
*/public boolean trylock(string key,long cacheseconds)catch (exception e)
return islock;
}}
下面是redis獲取鎖和刪除鎖的一對操作,因為redis的單執行緒屬性以及setifabsent方法,常用於商品秒殺的場景。用syn註解雖然可以解決同步的問題,但是此操作是每次讓乙個執行緒進入方法,勢必會導致程式的執行的時間過長,不能滿足實際的需求,這裡推薦使用redis分布式鎖。日常使用中,按照先上鎖,執行**,解鎖的步驟執行。
/**
* @author rhine
* @date 2018/11/8 2:37
**/@component
@slf4j
public class redislock
string currentvalue=redistemplate.opsforvalue().get(key);
//如果鎖過期
if (!stringutils.isempty(currentvalue)&&long.parselong(currentvalue)}
return false;
}/**
* 功能描述: 解鎖
* @param: [key, value]
* @return: void
* @auther: rhine
* @date: 2018/11/8 3:03
*/public void unlock(string key,string value)
}catch (exception e)",e);}}
}
Jedis使用工具類
redis 使用工具類 package com.qlwb.business.common.redis import org.apache.log4j.logger import redis.clients.jedis.jedis import redis.clients.jedis.jedispoo...
常用工具類的方法
一 arrayutils常用方法 tostring 將乙個陣列轉換成string,用於列印陣列 isequals 判斷兩個陣列是否相等,採用equalsbuilder進行判斷 tomap 將乙個陣列轉換成map,如果陣列裡是entry則其key與value就是新map的key和value,如果是ob...
Android 工具類 常用工具類(方法)大全
1.獲取手機解析度 獲取手機解析度 public static string getdisplaymetrix context context else constant.screen screen width width constant.screen screen height height r...