Springboot redis共通APIの使用
16268 ワード
一:構成
1.pox.xml導入依存
2.環境の構成
二:常用api
StringRedisTemplate
1.key関連アクション
2.keyの有効期限の設定
3.取得キーの有効期限
4.string list set zset hash相関
5.バインドキー操作の使用
RedisTemplate注:redisTemplateのデフォルトではkeyシーケンス化方式とvalueシーケンス化方式が使用されています.jdk Serializerシーケンス化が使用されています.
1.key関連アクション
2.カスタムシーケンス化
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);