美文网首页
springboot集成Redis缓存实战

springboot集成Redis缓存实战

作者: 昨日已逝去 | 来源:发表于2019-02-27 09:58 被阅读4次

    springboot集成Redis缓存实战

    原文在github,有些相对路径连接不能跳转,如想看原文项目地址 spingboot2.1.3加springcloud G版本,如果觉的不错给个star 谢谢!

    springboot官网

    You can inject an auto-configured RedisConnectionFactory, StringRedisTemplate,
     or vanilla RedisTemplate instance as you would any other Spring Bean.
    

    可见如果我们key value都是简单的字符串,可以直接使用stringRedisTemplate;但如果是更复杂的数据存储。那就要手动生成RedisTemplete。

    StringRedisTemplate演示

    • maven依赖
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    
    • application.properties文件配置
    # Redis数据库索引(默认为0),如果设置为1,那么存入的key-value都存放在select 1中
    spring.redis.database=0
    # Redis服务器地址
    spring.redis.host=127.0.0.1
    # Redis服务器连接端口
    spring.redis.port=6379 
    # Redis服务器连接密码(默认为空)
    spring.redis.password=password
    
    • test类编写
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class SpringBootRedisApplicationTests {
    
        @Autowired
        private StringRedisTemplate template;
    
        @Test
        public void contextLoads() {
    
    
            template.opsForValue().set("name","zwd");
            Assert.assertEquals("zwd",template.opsForValue().get("name"));
    
        }
    }
    

    RedisTemplate使用示例

    • redisTemplate必须手动创建bean。
    @Configuration
    public class RedisConfig {
    
        @Bean
        public RedisTemplate<String, Object> redisTemplate (RedisConnectionFactory factory) {
    
            RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
            redisTemplate.setConnectionFactory(factory);
    
            return redisTemplate;
        }
    }
    
    • 创建一个pojo
    public class User implements Serializable {
    
        private String name;
    
        private int age;
    
        //省略get set toString
    }
    
    
    • Test示例
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class SpringBootRedisApplicationTests {
    
        @Autowired
        private StringRedisTemplate template;
    
        @Autowired
        private RedisTemplate redisTemplate;
        @Test
        public void contextLoads() {
    
    
            template.opsForValue().set("name","zwd");
            Assert.assertEquals("zwd",template.opsForValue().get("name"));
    
        }
    
        @Test
        public void TestRedisTemplete() {
    
            User user = new User();
            user.setName("朱卫东");
            user.setAge(11);
            redisTemplate.opsForValue().set("user",user);
            System.out.println(redisTemplate.opsForValue().get("user"));
    
        }
    
    }
    

    项目地址

    相关文章

      网友评论

          本文标题:springboot集成Redis缓存实战

          本文链接:https://www.haomeiwen.com/subject/nakxuqtx.html