Springboot redis共通APIの使用

16268 ワード

一:構成
1.pox.xml導入依存
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

2.環境の構成
spring:
  redis:
    host: (ip)
    port: (6379)
    database: (0 - 16 )

二:常用api
StringRedisTemplate
@Autowired
private StringRedisTemplate stringRedisTemplate;

1.key関連アクション
//     key
 stringRedisTemplate.keys("*");

2.keyの有効期限の設定
//   :        :         :    
stringRedisTemplate.expire("name",10, TimeUnit.HOURS);

3.取得キーの有効期限
stringRedisTemplate.getExpire("name");

4.string list set zset hash相関
   //string    
  ValueOperations<String, String> stringStringValueOperations = stringRedisTemplate.opsForValue();
  stringStringValueOperations.set("name","6666");
  String s = stringStringValueOperations.get("name");
  System.out.println(s); //6666

  stringRedisTemplate.opsForList();//LIST    
  stringRedisTemplate.opsForSet();//set
  stringRedisTemplate.opsForZSet();//zset
  stringRedisTemplate.opsForHash();//hash

5.バインドキー操作の使用
BoundValueOperations<String, String> name = stringRedisTemplate.boundValueOps("name");//        key
name.append("99999");
String s = name.get();
System.out.println(s);//666699999

stringRedisTemplate.boundListOps("names");
stringRedisTemplate.boundSetOps("Sets");
stringRedisTemplate.boundZSetOps("ZSets");
stringRedisTemplate.boundHashOps("Hashs");

RedisTemplate注:redisTemplateのデフォルトではkeyシーケンス化方式とvalueシーケンス化方式が使用されています.jdk Serializerシーケンス化が使用されています.
1.key関連アクション
//entity
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

@Data
@Accessors(chain =true)
public class User implements Serializable {
    private String id;
    private String name;
    private Date bir;
}


//    
  @Autowired
    private RedisTemplate redisTemplate;
    @Test
    void t(){
        User user = new User();
        user.setId(UUID.randomUUID().toString()).setName("ck").setBir(new Date());
        redisTemplate.opsForValue().set("user",user);

        User user1 = (User) redisTemplate.opsForValue().get("user");
        System.out.println(user);
    }


2.カスタムシーケンス化
  //  key               
  redisTemplate.setKeySerializer(new StringRedisSerializer());

//  value    
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
//    jackson                   json         
ObjectMapper objectMapper = new ObjectMapper();
//  json         json 
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
//  entity       
objectMapper.setDateFormat(new SimpleDateFormat("yyyy MM dd"));
jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);