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

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

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

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

依赖包
 <dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>
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<Object, Object> redisTemplate = new RedisTemplate<>();
		redisTemplate.setConnectionFactory(redisConnectionFactory);
		//定义key 序列化 方式
		redisTemplate.setKeySerializer(new StringRedisSerializer());
		//定义value 序列化 方式
		redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
		return redisTemplate;
	}
}

操作 可以发现

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<Object, Object> 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<Object> 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 系列

想和博主交流,欢迎关注博主公众号
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值