Android 儲存圖片到本地
阿新 • • 發佈:2020-12-10
整合前提:安裝redis(教程見文末推薦)
1.jar包引入
<!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.4.7.RELEASE</version> </dependency>
2.連線池配置
spring: ###redis配置 redis: # Redis資料庫索引(預設為0) database: 0 # Redis伺服器地址 host: localhost # Redis伺服器連線埠 port: 6379 # Redis伺服器連線密碼(預設為空) password: jedis: pool: # 連線池最大連線數(使用負值表示沒有限制) max-active: 10 # 連線池最大阻塞等待時間(單位毫秒,使用負值表示沒有限制) max-wait: -1ms # 連線池中的最大空閒連線 max-idle: 10 # 連線池中的最小空閒連線 min-idle: 0 # 連線超時時間(毫秒) timeout: 2000ms
3.註解配置Java類
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; /** * redis的通用化配置 * @description: * @author: Marydon * @date: 2020-12-10 10:26 * @version: 1.0 * @email: [email protected] */ @Configuration public class RedisConfig { @Autowired private RedisConnectionFactory redisConnectionFactory; @Bean public RedisTemplate<String,Object> redisTemplate(){ RedisTemplate<String,Object> redisTemplate=new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); // 指定Key、Value的序列化策略 redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer()); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); return redisTemplate; } @Bean public StringRedisTemplate stringRedisTemplate(){ StringRedisTemplate stringRedisTemplate=new StringRedisTemplate(); stringRedisTemplate.setConnectionFactory(redisConnectionFactory); return stringRedisTemplate; } }
4.如何使用?
在需要使用redis快取的java類,注入物件:
@Autowired private StringRedisTemplate stringRedisTemplate;
或者用註解:@Resource
往快取存資料:
ValueOperations valueOperations = stringRedisTemplate.opsForValue(); valueOperations.setIfAbsent(key, value);
從快取取資料:
ValueOperations valueOperations = stringRedisTemplate.opsForValue(); valueOperations.get(key);
5.啟動redis服務
雙擊執行:redis.bat檔案,即可。
說明:
你肯定是沒有這個檔案的,想看實現方法的見文末推薦:redis安裝教程;
不想看的,按照自己之前的方式啟動redis就行。
6.測試
我們按照上面的方法,在springboot的啟動測試類來親手嘗試一下:
寫好後,點選圖片上的綠三角,就能快速啟動測試類啦。執行結果如下:
注意:點選contextLoads()才能看到測試類執行結果。
可以來檢視一下,redis資料庫:
需要開啟redis-cli.exe。
7.關於redis的資料儲存型別問題
在實際開發過程中,我們之所以使用redis快取庫,就是為了減少資料庫訪問次數,減輕資料庫壓力,為此,通常我們會選擇把需要頻繁查詢的資料存入快取當中。
那麼,我們現在來測試一下實體類能不能放到快取當中:
執行結果如下:
無法將java物件存入redis當中。
隨後,百度結果如下:
Redis 只能支援六種資料型別(string/hash/list/set/zset/hyperloglog)的操作,但在 Java 中我們卻通常以類物件為主,怎麼辦?
見文末推薦
寫在最後
哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!