spring boot 集成 Redis

前提:你已經安裝了Redisredis

一、建立一個spring boot 工程spring

二、pom 引入依賴:spring-boot-starter-data-redisapache

         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>    

三、在application.propertise 配置Redis相關參數session

########################################################
###redis (redis)
########################################################
#開發
spring.redis.host=localhost
spring.redis.port= 6379
spring.redis.password=123456

spring.session.store-type=redis
spring.redis.database=1
# 鏈接池中的最大空閒鏈接
spring.redis.pool.max-idle= 8
# 鏈接池中的最小空閒鏈接
spring.redis.pool.min-idle= 0
# 鏈接池最大鏈接數(使用負值表示沒有限制)
spring.redis.pool.max-active= 8
# 鏈接池最大阻塞等待時間(使用負值表示沒有限制)
spring.redis.pool.max-wait= -1
# 鏈接超時時間(毫秒)
spring.redis.timeout= 6000

4.建立Redis工廠app

@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
    @Value("${spring.redis.host}")
    private String host;

    @Value("${spring.redis.port}")
    private int port;

    @Value("${spring.redis.timeout}")
    private int timeout;

    @Value("${spring.redis.pool.max-idle}")
    private int maxIdle;

    @Value("${spring.redis.pool.max-wait}")
    private long maxWaitMillis;

    @Value("${spring.redis.password}")
    private String password;

    @Bean
    public JedisPool redisPoolFactory() {
      
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxIdle(maxIdle);
        jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
        jedisPoolConfig.setEvictionPolicyClassName("org.apache.commons.pool2.impl.DefaultEvictionPolicy");
        JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password);

        return jedisPool;
    }

五、須要redis時,直接注入便可spring-boot

@Autowired
    private RedisTemplate redisTemplate;

6. redisTemplate 使用,Redis能夠操做五種數據類型(字符串(String)、哈希/散列/字典(Hash)、列表(List)、集合(Set)、有序集合(sorted set))spa

6.1 字符串(String)code

保存blog

redisTemplate.opsForValue().set("key1","value1");  
redisTemplate.opsForValue().set("key2","value2"); 

取值開發

String result1=redisTemplate.opsForValue().get("key1").toString();  
String result2=redisTemplate.opsForValue().get("key2").toString(); 

6.2 哈希/散列/字典(Hash)

保存

Map<String,String> map=new HashMap<String,String>();  
map.put("key1","1");  
map.put("key2","2");  
map.put("key3","3");  
map.put("key4","4");  
map.put("key5","5");  
redisTemplate.opsForHash().putAll("hashMap",map);

取值

String value=(String)redisTemplate.opsForHash().get("hashMap","key1");          //結果是 1
Map<String,String> resultMap= redisTemplate.opsForHash().entries("hashMap");   //結果是 {key1=1, key2=2, key5=5, key3=3, key4=4}
List
<String>reslutMapList=redisTemplate.opsForHash().values("hashMap"); //結果是 取得全部value值[1,2,3,4,5]
Set
<String>resultMapSet=redisTemplate.opsForHash().keys("hashMap"); //結果是 取得key值 [key1, key2, key5, key3, key4] 

6.3 列表(List)

保存

List<Pays> requestJsonList = new Array<>();
 redisTemplate.opsForList().leftPush("key1", requestJsonList);  //將list集合放入Redis

取值

List<Pays> requestJsonList1 = (List<Pays>) redisTemplate.opsForList().leftPop("key1");

7.總結操做

redisTemplate.opsForValue();//操做字符串
redisTemplate.opsForHash();//操做hash
redisTemplate.opsForList();//操做list
redisTemplate.opsForSet();//操做set
redisTemplate.opsForZSet();//操做有序set
相關文章
相關標籤/搜索