spring 整合redis

本文介绍了如何在Spring项目中整合Redis,包括添加Maven依赖,配置Redis连接参数,以及两种操作Redis的方式——StringRedisTemplate和RedisTemplate。StringRedisTemplate适用于操作字符串类型数据,而RedisTemplate适用于处理复杂对象类型数据,它们的序列化方式不同,使用时需根据数据类型选择合适的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring 整合redis

 

1.maven项目引入依赖

<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>2.1.15.RELEASE</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.2.0</version> </dependency>

 

2.配置redis参数

spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password=*** spring.redis.database=0

 

3.操作redis 的俩种方式: I.StringRedisTemplate II.RedisTemplate 。

StringRedisTemplate 操作示例如下:

@Autowired private StringRedisTemplate stringRedisTemplate; //redis的操作类 @GetMapping("redis-op") public void redisOp(){ stringRedisTemplate.opsForValue().set("test", "100",60*10, TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间 stringRedisTemplate.boundValueOps("test").increment(-1);//val做-1操作 stringRedisTemplate.opsForValue().get("test");//根据key获取缓存中的val stringRedisTemplate.boundValueOps("test").increment(1);//val +1 stringRedisTemplate.getExpire("test");//根据key获取过期时间 stringRedisTemplate.getExpire("test",TimeUnit.SECONDS);//根据key获取过期时间并换算成指定单位 stringRedisTemplate.delete("test");//根据key删除缓存 stringRedisTemplate.hasKey("546545");//检查key是否存在,返回boolean值 stringRedisTemplate.opsForSet().add("red_123", "1","2","3");//向指定key中存放set集合 stringRedisTemplate.expire("red_123",1000 , TimeUnit.MILLISECONDS);//设置过期时间 stringRedisTemplate.opsForSet().isMember("red_123", "1");//根据key查看集合中是否存在指定数据 stringRedisTemplate.opsForSet().members("red_123");//根据key获取set集合 }

每个类型都有自己对应的类:

1 StringRedisTemplate.opsForValue().* //操作String字符串类型 3 StringRedisTemplate.opsForList().* //操作List类型 4 StringRedisTemplate.opsForHash().* //操作Hash类型 5 StringRedisTemplate.opsForSet().* //操作set类型 6 StringRedisTemplate.opsForZSet().* //操作有序set

 

4.特别注意事项

两者的数据是不共通的;也就是说StringRedisTemplate只能管理StringRedisTemplate里面的数据,RedisTemplate只能管理RedisTemplate中的数据。

  • 其实他们两者之间的区别主要在于他们使用的序列化类:

    RedisTemplate使用的是JdkSerializationRedisSerializer    存入数据会将数据先序列化成字节数组然后在存入Redis数据库。 

      StringRedisTemplate使用的是StringRedisSerializer

  • 使用时注意事项:

   当你的redis数据库里面本来存的是字符串数据或者你要存取的数据就是字符串类型数据的时候,那么你就使用StringRedisTemplate即可。

   但是如果你的数据是复杂的对象类型,而取出的时候又不想做任何的数据转换,直接从Redis里面取出一个对象,那么使用RedisTemplate是更好的选择。

 

uploading.4e448015.gif正在上传…重新上传取消

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值