這篇文章主要介紹springboot與redis整合的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)是一家專業(yè)提供河池企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、做網(wǎng)站、H5建站、小程序制作等業(yè)務(wù)。10年已為河池眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
下載、安裝、啟動(dòng)好Redis服務(wù)后我們?cè)O(shè)置一個(gè)key并獲取一下
代碼編寫(xiě)
maven引包
org.springframework.boot
spring-boot-starter-data-redis
配置文件
我們先看一下都有哪些Redis相關(guān)配置,發(fā)現(xiàn)好多都有默認(rèn)值,而且剛好符合我們現(xiàn)在的測(cè)試環(huán)境,于是乎我的配置文件是這樣滴....
server.port=1113
spring.application.name=redis-server
接口測(cè)試代碼
@RestController
public class Controller{
@Autowired
private StringRedisTemplate template;
@RequestMapping("/redis/get/{key}")
private String get(@PathVariable("key") String key){
return template.opsForValue().get(key);
}
@RequestMapping("/redis/set/{key}/{value}")
private Boolean set(@PathVariable("key") String key,@PathVariable("value") String value){
boolean flag = true;
try {
template.opsForValue().set(key,value);
} catch (Exception e) {
e.printStackTrace();
flag = false;
}
return flag;
}
}
測(cè)試效果
我們直接啟動(dòng)springboot的main函數(shù),瀏覽器訪問(wèn)測(cè)試接口
擴(kuò)展工具類
關(guān)于StringRedisTemplate類的操作自行查閱資料,我在網(wǎng)上找了一個(gè)工具類,我沒(méi)有測(cè)試過(guò),但可以參考自行測(cè)試!
@SuppressWarnings("ALL")
@Component
public class RedisUtil {
private static StringRedisTemplate template;
/**
* 靜態(tài)注入
*/
public RedisUtil(StringRedisTemplate template) {
RedisUtil.template = template;
}
/**
* 指定緩存失效時(shí)間
*
* @param key 鍵
* @param time 時(shí)間(秒)
*/
private void expire(String key, long time) {
try {
if (time > 0) {
template.expire(key, time, TimeUnit.SECONDS);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 根據(jù)key 獲取過(guò)期時(shí)間
*
* @param key 鍵 不能為null
* @return 時(shí)間(秒) 返回0代表為永久有效
*/
public long getExpire(String key) {
return template.getExpire(key, TimeUnit.SECONDS);
}
/**
* 判斷key是否存在
*
* @param key 鍵
* @return true 存在 false不存在
*/
public boolean hasKey(String key) {
try {
return template.hasKey(key);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 刪除緩存
*
* @param key 可以傳一個(gè)值 或多個(gè)
*/
public void del(String... key) {
if (key != null && key.length > 0) {
if (key.length == 1) {
template.delete(key[0]);
} else {
template.delete(CollectionUtils.arrayToList(key));
}
}
}
//============================String=============================
/**
* 普通緩存獲取
*
* @param key 鍵
* @return 值
*/
public Object get(String key) {
return key == null ? null : template.opsForValue().get(key);
}
/**
* 普通緩存放入
*
* @param key 鍵
* @param value 值
* @return true成功 false失敗
*/
public boolean set(String key, Object value) {
try {
template.opsForValue().set(key, String.valueOf(value));
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 普通緩存放入并設(shè)置時(shí)間
*
* @param key 鍵
* @param value 值
* @param time 時(shí)間(秒) time要大于0 如果time小于等于0 將設(shè)置無(wú)限期
* @return true成功 false 失敗
*/
public boolean set(String key, Object value, long time) {
try {
if (time > 0) {
template.opsForValue().set(key, String.valueOf(value), time, TimeUnit.SECONDS);
} else {
set(key, value);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 遞增
*
* @param key 鍵
* @return
*/
public long incr(String key, long delta) {
if (delta < 0) {
throw new RuntimeException("遞增因子必須大于0");
}
return template.opsForValue().increment(key, delta);
}
/**
* 遞減
*
* @param key 鍵
* @return
*/
public long decr(String key, long delta) {
if (delta < 0) {
throw new RuntimeException("遞減因子必須大于0");
}
return template.opsForValue().increment(key, -delta);
}
//================================Map=================================
/**
* HashGet
*
* @param key 鍵 不能為null
* @param item 項(xiàng) 不能為null
* @return 值
*/
public Object hget(String key, String item) {
return template.opsForHash().get(key, item);
}
/**
* 獲取hashKey對(duì)應(yīng)的所有鍵值
*
* @param key 鍵
* @return 對(duì)應(yīng)的多個(gè)鍵值
*/
public Map
以上是“springboot與redis整合的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
標(biāo)題名稱:springboot與redis整合的示例分析
分享網(wǎng)址:
http://weahome.cn/article/ijsjci.html