1. 程式人生 > 其它 >Android 儲存圖片到本地

Android 儲存圖片到本地

整合前提:安裝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 中我們卻通常以類物件為主,怎麼辦?

  見文末推薦

寫在最後

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

相關推薦: