SpringBoot中使用Redis的完整實例
一.在SpringBoot中使用Redis的一套軍體拳
1.導包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.2.0.RELEASE</version> </dependency>
2.導入工具類
package com.cbsd.util; import java.util.concurrent.TimeUnit; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.ListOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.SetOperations; import org.springframework.data.redis.core.ValueOperations; import org.springframework.data.redis.core.ZSetOperations; import org.springframework.stereotype.Component; import com.alibaba.fastjson.JSON; /** * redisTemplate封裝 * * @author gxp */ @Component public class RedisUtil { // private Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired private RedisTemplate<String, Object> redisTemplate; @Autowired private ValueOperations<String, String> valueOperations; @SuppressWarnings("unused") @Autowired private HashOperations<String, String, Object> hashOperations; @SuppressWarnings("unused") @Autowired private ListOperations<String, Object> listOperations; @SuppressWarnings("unused") @Autowired private SetOperations<String, Object> setOperations; @SuppressWarnings("unused") @Autowired private ZSetOperations<String, Object> zSetOperations; /** 默認過期時長,單位:秒 */ public final static long DEFAULT_EXPIRE = 60 * 60 * 24; /** 不設置過期時長 */ public final static long NOT_EXPIRE = -1; public void set(String key, Object value, long expire){ valueOperations.set(key, toJson(value)); if(expire != NOT_EXPIRE){ redisTemplate.expire(key, expire, TimeUnit.SECONDS); } } public void set(String key, Object value){ set(key, value, DEFAULT_EXPIRE); } public <T> T get(String key, Class<T> clazz, long expire) { String value = valueOperations.get(key); if(expire != NOT_EXPIRE){ redisTemplate.expire(key, expire, TimeUnit.SECONDS); } return value == null ? null : fromJson(value, clazz); } public <T> T get(String key, Class<T> clazz) { return get(key, clazz, NOT_EXPIRE); } public String get(String key, long expire) { String value = valueOperations.get(key); if(expire != NOT_EXPIRE){ redisTemplate.expire(key, expire, TimeUnit.SECONDS); } return value; } public String get(String key) { return get(key, NOT_EXPIRE); } public void delete(String key) { redisTemplate.delete(key); } /** * Object轉(zhuǎn)成JSON數(shù)據(jù) */ private String toJson(Object object){ if(object instanceof Integer || object instanceof Long || object instanceof Float || object instanceof Double || object instanceof Boolean || object instanceof String){ return String.valueOf(object); } return JSON.toJSONString(object); } /** * JSON數(shù)據(jù),轉(zhuǎn)成Object */ private <T> T fromJson(String json, Class<T> clazz){ return JSON.parseObject(json, clazz); } }
3.在SpringBoot的配置文件中配置redis的服務器
(1).yml配置文件中
spring: redis: open: true # 是否開啟redis緩存 true開啟 false關閉 database: 0 host: redis服務器地址 port: redis服務器端口號 password: redis服務器密碼 # 密碼(默認為空) timeout: 15000 # 連接超時時長(毫秒) jedis: pool: max-active: 1000 # 連接池最大連接數(shù)(使用負值表示沒有限制) max-wait: -1 # 連接池最大阻塞等待時間(使用負值表示沒有限制) max-idle: 10 # 連接池中的最大空閑連接 min-idle: 5 # 連接池中的最小空閑連接
(2).properties配置文件中
#### 連接redis非關系型數(shù)據(jù)庫配置 spring.redis.host=redis服務器地址 spring.redis.password=redis服務器密碼,默認為空 spring.redis.port=redis服務器端口號 spring.redis.timeout=20000 //超時時間 spring.redis.database=6 spring.redis.lettuce.pool.min-idle=0 spring.redis.lettuce.pool.max-idle=3000 spring.redis.lettuce.pool.max-wait=10000 spring.redis.lettuce.pool.max-active=3000
4.使用
還是補上使用的方法吧
1.存入數(shù)據(jù)的方法
/** * * @param key 同理map的key,可以根據(jù)對應的key取到對應的值 * @param value 要存入redis的數(shù)據(jù) * @param expire 超時時間,就是數(shù)據(jù)會在redis里面存多久,可以不傳,就是永不超時 */ public void set(String key, Object value, long expire){ valueOperations.set(key, toJson(value)); if(expire != NOT_EXPIRE){ redisTemplate.expire(key, expire, TimeUnit.SECONDS); } }
2.取出數(shù)據(jù)的方法
/** * * @param key 存入數(shù)據(jù)時,設置的key,根據(jù)可以取到對應的數(shù)據(jù) * @return */ public String get(String key) { return get(key, NOT_EXPIRE); }
3.還有個刪除
就是調(diào)用delete方法,跟get方法一樣傳一個key過去,就可以刪除對應的數(shù)據(jù)了
到此這篇關于SpringBoot中使用Redis的文章就介紹到這了,更多相關SpringBoot使用Redis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java實現(xiàn)兩人五子棋游戲(五) 判斷是否有一方勝出
這篇文章主要為大家詳細介紹了Java實現(xiàn)兩人五子棋游戲,判斷是否有一方勝出,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03spring-data-redis 動態(tài)切換數(shù)據(jù)源的方法
最近遇到了一個麻煩的需求,我們需要一個微服務應用同時訪問兩個不同的 Redis 集群,一般情況下我們會怎么處理呢,下面通過場景分析給大家介紹spring-data-redis 動態(tài)切換數(shù)據(jù)源的方法,感興趣的朋友一起看看吧2021-08-08SpringCloud Feign如何在遠程調(diào)用中傳輸文件
這篇文章主要介紹了SpringCloud Feign如何在遠程調(diào)用中傳輸文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09