Redis 系列-- SpringBoot中redisTemplate 的操作(一)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(一)

在Java 操作redis 时,有很多工具,redis 官网中,就有很多操作,

Redis 系列-- SpringBoot中redisTemplate 的操作(一)_第1张图片

目前主流开发框架SpringBoot 中,当然也有集成好的操作redis的工具–redisTemplate,下面就来说一说它的基本操作。

依赖包
 
	org.springframework.boot
	spring-boot-starter-data-redis


	org.springframework.boot
	spring-boot-starter-web

redisTemplate 序列化规则

Spring Data JPA 提供的序列化 Serializer:

1、GenericToStringSerializer

2、Jackson2JsonRedisSerializer

3、JacksonJsonRedisSerializer

4、JdkSerializationRedisSerializer

5、OxmSerializer

6、StringRedisSerializer

我们通过操作

User user = new User(1, "su", new Date());
redisTemplate.opsForValue().set("name","su");
redisTemplate.opsForValue().set("user",user);

查看 redis 可以发现

redisTemplate 默认的是 JdkSerializationRedisSerializer 序列化方法。

如果说 我们想以json 的方法进行 序列化 可以自定义redisTemplate

@Configuration
public class RedisTemplateConfig {

	[@Bean](https://my.oschina.net/bean)
	public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
		RedisTemplate redisTemplate = new RedisTemplate<>();
		redisTemplate.setConnectionFactory(redisConnectionFactory);
		//定义key 序列化 方式
		redisTemplate.setKeySerializer(new StringRedisSerializer());
		//定义value 序列化 方式
		redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
		return redisTemplate;
	}
}

操作 可以发现

Redis 系列-- SpringBoot中redisTemplate 的操作(一)_第2张图片

String 类型的操作

1⃣️ 添加数据

 User user = new User(1, "su", new Date());
 redisTemplate.opsForValue().set("name","su");
 redisTemplate.opsForValue().set("user",user);

2⃣️ 添加数据,并设置过期时间

redisTemplate.opsForValue().set("age",18,10000, TimeUnit.MILLISECONDS);

3⃣️ 批量添加数据

HashMap map = new HashMap<>();
map.put("name", "susu");
map.put("age", 18);
map.put("address", "shanghai");
redisTemplate.opsForValue().multiSet(map);

4⃣️ 原子操作数据

    Long num = (Long) redisTemplate.opsForValue().getAndSet("num", 1);

5⃣️ 追加数据

    Integer num = redisTemplate.opsForValue().append("name", "susu");

6⃣️ 根据key 获取数据

    User user = (User) redisTemplate.opsForValue().get("user");

7⃣️ 批量获取数据

    List list = new ArrayList<>();
    list.add("name");
    list.add("address");
    list.add("user");
    List listResult = redisTemplate.opsForValue().multiGet(list);
 
  

8⃣️ 自增运算 并设置自增步长 (默认是1)

    Long num = redisTemplate.opsForValue().increment("num", 2);

9⃣️ 自减运算,并设置步长 (默认是1)

    redisTemplate.opsForValue().decrement("num");

OK,redisTemplate 的操作(一)先说到这里,请继续关注Redis 系列

想和博主交流,欢迎关注博主公众号

你可能感兴趣的:(Redis)