唠嗑:大家好,我又来了,今天给自己练手的项目集成我们常用的非关系性数据库Redis。一边学习,一边记录。
话不多说直接上流程
下载网址:http://redis.io/download ; http://redis.cn/
或者我这边共享的压缩包: https://pan.baidu.com/s/1UDMDZWnirENfUAK3Mjk3uA 提取码: xu4c
先去下载一个Redis压缩包,直接解压即可。
解压后是没有设置密码的,如果需要设置密码找到->redis.windows.conf文件
打开后找到# requirepass foobared 修改成 requirepass 123456(密码)
解压后截图.png
配置文件截图.png
启动和测试
先启动服务端,可以选择双击redis-server.exe,但是最好通过命令加载配置启动redis-server redis.windows.conf
redis启动成功.png
双击redis-cli.exe启动客户端连接redis-server.exe。
客户端操作.png
测试完毕正常连接成功,set key value,get key 获取value
下面是SpringBoot集成Redis
1.导包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.yml配置
spring:
redis:
database: 0
host: 127.0.0.1
port: 6379
password: 123456
jedis:
pool:
max-wait: 2000ms
min-idle: 2
max-idle: 8
3.配置类
@Configuration
public class RedisConfig {
/**
* 重写Redis序列化方式,使用Json方式:
* 当我们的数据存储到Redis的时候,我们的键(key)和值(value)都是通过Spring提供的Serializer序列化到数据库的。RedisTemplate默认使用的是JdkSerializationRedisSerializer,StringRedisTemplate默认使用的是StringRedisSerializer。
* Spring Data JPA为我们提供了下面的Serializer:
* GenericToStringSerializer、Jackson2JsonRedisSerializer、JacksonJsonRedisSerializer、JdkSerializationRedisSerializer、OxmSerializer、StringRedisSerializer。
* 在此我们将自己配置RedisTemplate并定义Serializer。
*
* @param redisConnectionFactory
* @return
*/
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
FastJsonRedisSerializer<Object> fastJsonRedisSerializer = new FastJsonRedisSerializer<>(Object.class);
// 全局开启AutoType,不建议使用
// ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
// 建议使用这种方式,小范围指定白名单(类路径)
ParserConfig.getGlobalInstance().addAccept("cn.huangsong.entity");
// 设置值(value)的序列化采用FastJsonRedisSerializer。
redisTemplate.setValueSerializer(fastJsonRedisSerializer);
redisTemplate.setHashValueSerializer(fastJsonRedisSerializer);
// 设置键(key)的序列化采用StringRedisSerializer。
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
//这里需要一个导入一个依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.59</version>
<scope>compile</scope>
</dependency>
4.测试一下
@org.springframework.boot.test.context.SpringBootTest(classes = TestApplication.class)
@RunWith(SpringRunner.class)
public class SpringBootTest {
@Autowired
private RedisTemplate redisTemplate;
/**
* 测试redis监控key,实现超时任务处理
*/
@Test
public void test4(){
TUser tUser = new TUser();
tUser.setAge(20);
tUser.setName("张三");
tUser.setPassword("123");
//设置过期时间
redisTemplate.opsForValue().set("name",tUser,10, TimeUnit.SECONDS);
String jsonStr = redisTemplate.opsForValue().get("name").toString();
//json字符串转java对象
Map map = JSON.parseObject(jsonStr, Map.class);
TUser tUser1 = JSON.parseObject(jsonStr, tUser.getClass());
System.out.println(map);
System.out.println(tUser1);
}
5.输出结果
输出结果.png
结束语:睡不着觉,学习+复习的记录过程。