springboot整合redis
1.导入相应依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
2.springboot中的application.properties文件对应配置
#Redis服务器地址
spring.redis.host=你的redis的ip地址
#Redis服务器连接端口
spring.redis.port=你的redis端口
#Redis数据库索引(默认为0)
spring.redis.database= 0
#连接超时时间(毫秒)
spring.redis.timeout=1800000
#连接池最大连接数(使用负值表示没有限制)
spring.redis.lettuce.pool.max-active=20
#最大阻塞等待时间(负数表示没限制)
spring.redis.lettuce.pool.max-wait=-1
#连接池中的最大空闲连接
spring.redis.lettuce.pool.max-idle=5
#连接池中的最小空闲连接
spring.redis.lettuce.pool.min-idle=0
spring.redis.password=你的redis密码
对应的命令,详细命令可自己搜索操作
3. 在springboot测试类中实验一下
@SpringBootTest
public class redistest {
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Test
public void test1(){
redisTemplate.opsForValue().set("1","1");
}
}
测试成功
SpringDataRedis序列化
redis可以接收任意Object作为值写入redis,但是会将Object序列转换成字节形式,默认采用JDK序列化,得到如下的结果
可读性很差,内存占用也是非常大,非常痛苦
将其转换成JSON字符串可以完美解决这种问题
可以使用fastjson包,将Object类型的对象直接转换成json字符串,导入如下依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>
将Object对象转换成json字符串 JSON.toJSONString(Object)
redisTemplate.opsForValue().set("TOKEN_"+token, JSON.toJSONString(sysUsers),1, TimeUnit.DAYS);
将json字符串反向转化成原对象
SysUsers sysUsers=JSON.parseObject(userJson,SysUsers.class);
以此完成redis序列化和反序列化,非常给力