Java教程

redis的简单使用(java)

本文主要是介绍redis的简单使用(java),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

redis的简单使用(java)

redis官网: http://www.redis.cn/

一 redis入门

01 导入坐标

<!--使用redisTemplate-->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

02 配置文件

spring:
  application:
    name: demo-test-template
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ajava?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false
    username: root
    password: root
​
  redis:
    database: 0
    host: 127.0.0.1
    port: 6379
    password:
    timeout: 6000ms  # 连接超时时长(毫秒)
    jedis:
      pool:
        max-active: 1000  # 连接池最大连接数(使用负值表示没有限制)
        max-wait: -1ms      # 连接池最大阻塞等待时间(使用负值表示没有限制)
        max-idle: 10      # 连接池中的最大空闲连接
        min-idle: 5       # 连接池中的最小空闲连接

 

03 模板对象

模板对象序列化方式序列化效果
RedisTemplate JdkSerializationRedisSerializer  
StringRedisTemplate StringRedisSerializer  

API

//操作string类型
redisTemplate.opsForValue();
​
//操作hash类型
redisTemplate.opsForHash();
​
//操作list类型
redisTemplate.opsForList();
​
//操作set类型
redisTemplate.opsForSet();
​
//操作有序set类型
redisTemplate.opsForZSet();

 

04 test类

@SpringBootTest
@RunWith(SpringRunner.class)
public class AppTest {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;
​
    /**
     * redis测试
     */
    @Test
    public void redisServerTest(){
        stringRedisTemplate.opsForValue().set("key12-15","123", Duration.ofSeconds(100L));
       
    }
}

思考一个问题:

  • 为什么加载了redis的starter(起步依赖)之后,RedisTemplate对象会自动被new出来,并可以@Autowired了呢?

SpringBoot工作原理: https://www.cnblogs.com/lyn8100/p/15837349.html

 

二 redis失效key触发事件

01 redis配置类

/**
 * Redis缓存配置类
 */
@Configuration
public class RedisConfigurer extends CachingConfigurerSupport {
​
    @Bean
    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
​
        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
        container.setConnectionFactory(connectionFactory);
        return container;
    }
​
}

02 监听者类

/**
 * redis 失效key的监听者类
 * @Author lyn
 */
@Component
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
​
    public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
        super(listenerContainer);
    }
​
    /**
     * 针对redis数据失效事件,进行数据处理
     * @param message
     * @param pattern
     */
    @Override
    public void onMessage(Message message, byte[] pattern) {
        // message.toString()可以获取失效的key
        String expiredKey = message.toString();
        //后去解析key,调用其他服务执行任务
        System.out.println(expiredKey);
    }
}

 

这篇关于redis的简单使用(java)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!