spring boot使用Redis

Laughing
2020-10-02 / 0 评论 / 1,531 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年03月18日,已超过305天没有更新,若内容或图片失效,请留言反馈。

什么是Redis

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。


Redis官网:https://redis.io/

spring boot 使用Redis

添加依赖

  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
  </dependency>

修改application.yaml

在配置文件中,增加redis配置信息

增加Redis配置类

/**
 * Redis配置
 * @author laughing
 * @date 2020/10/2
 * @site https://www.xiangcaowuyu.net
 */
@Configuration
public class RedisConfig {

    /**
     * RedisTemplate配置,放置存储数据乱码
     * @param redisConnectionFactory
     * @return
     */
    @Bean
    public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
        RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        // key采用String的序列化方式
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        // hash的key也采用String的序列化方式
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
        // value序列化方式采用fastjson
        redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
        // hash的value序列化方式采用jackson
        redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }
}

编写Redis工具类

/**
 * Redis工具类
 * @author laughing
 * @date 2020/10/2
 * @site https://www.xiangcaowuyu.net
 */
@Component
public class RedisUtils {

    @Resource
    RedisTemplate<String, Object> redisTemplate;

    /**
     * 判断是否存在
     *
     * @return
     */
    public boolean hasKey(String key) {
        return redisTemplate.hasKey(key);
    }

    /**
     * 获取值
     * @param key
     * @return
     */
    public Object getValue(String key){
        return redisTemplate.opsForValue().get(key);
    }

    /**
     * 设置值
     *
     * @param key
     * @param value
     */
    public void setValue(String key, Object value) {
        redisTemplate.opsForValue().set(key, value);
    }

    /**
     * 获取过期时间
     *
     * @param key
     * @return
     */
    public Long getExpire(String key) {
        return redisTemplate.getExpire(key);
    }

    /**
     * 获取过期时间
     *
     * @param key
     * @param timeUnit
     * @return
     */
    public Long getExpire(String key, TimeUnit timeUnit) {
        return redisTemplate.getExpire(key, timeUnit);
    }

    /**
     * 设置过期时间
     *
     * @param key
     * @param timeOut
     * @return
     */
    public Boolean setExpire(String key, Duration timeOut) {
        return redisTemplate.expire(key, timeOut);
    }

    /**
     * 删除
     *
     * @param key
     * @return
     */
    public Boolean delete(String key) {
        return redisTemplate.delete(key);
    }

    /**
     * 删除
     * @param keys
     * @return
     */
    public Long deleteAll(List<String> keys){
        return redisTemplate.delete(keys);
    }

}

使用

这里进行简单的测试。

@SpringBootTest
class RedisApplicationTests {

    @Resource
    RedisUtils redisUtils;

    @Test
    void contextLoads() {

    }

    @Test
    void setValue(){
        String key = "name";
        String value = "香草物语";
        redisUtils.setValue(key,value);
    }

}

这里只演示一个设置值,通过Another Redis Desktop查看数据库

0

评论 (0)

取消
  1. 头像
    李森
    MacOS · Safari

    呵呵

    回复
  2. 头像
    青云
    Windows 10 · Google Chrome

    感谢分享

    回复