zoukankan      html  css  js  c++  java
  • Springboot --redis (2)

                                      Springboot --redis

    package com.bjsxt.config;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.serializer.StringRedisSerializer;
    import redis.clients.jedis.JedisPoolConfig;
    
    /**
     * 完成对Redis的整合的一些配置
     *
     *
     */
    @Configuration
    public class RedisConfig {
    
        /**
         * 1.创建JedisPoolConfig对象。在该对象中完成一些链接池配置
         * @ConfigurationProperties:会将前缀相同的内容创建一个实体。
         */
        @Bean
        @ConfigurationProperties(prefix="spring.redis.pool")
        public JedisPoolConfig jedisPoolConfig(){
            JedisPoolConfig config = new JedisPoolConfig();
            /*//最大空闲数
            config.setMaxIdle(10);
            //最小空闲数
            config.setMinIdle(5);
            //最大链接数
            config.setMaxTotal(20);*/
            System.out.println("默认值:"+config.getMaxIdle());
            System.out.println("默认值:"+config.getMinIdle());
            System.out.println("默认值:"+config.getMaxTotal());
            return config;
        }
        
        /**
         * 2.创建JedisConnectionFactory:配置redis链接信息
         */
        @Bean
        @ConfigurationProperties(prefix="spring.redis")
        public JedisConnectionFactory jedisConnectionFactory(JedisPoolConfig config){
            System.out.println("配置完毕:"+config.getMaxIdle());
            System.out.println("配置完毕:"+config.getMinIdle());
            System.out.println("配置完毕:"+config.getMaxTotal());
            
            JedisConnectionFactory factory = new JedisConnectionFactory();
            //关联链接池的配置对象
            factory.setPoolConfig(config);
            //配置链接Redis的信息
            //主机地址
            /*factory.setHostName("192.168.70.128");
            //端口
            factory.setPort(6379);*/
            return factory;
        }
        
        /**
         * 3.创建RedisTemplate:用于执行Redis操作的方法
         */
        @Bean
        public RedisTemplate<String,Object> redisTemplate(JedisConnectionFactory factory){
            RedisTemplate<String, Object> template = new RedisTemplate<>();
            //关联
            template.setConnectionFactory(factory);
            
            //为key设置序列化器
            template.setKeySerializer(new StringRedisSerializer());
            //为value设置序列化器
            template.setValueSerializer(new StringRedisSerializer());
            
            return template;
        }
    }
    RedisConfig
    package com.bjsxt.pojo;
    
    import java.io.Serializable;
    
    public class Users implements Serializable {
        
        private Integer id;
        private String name;
        private Integer age;
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Integer getAge() {
            return age;
        }
        public void setAge(Integer age) {
            this.age = age;
        }
        @Override
        public String toString() {
            return "Users [id=" + id + ", name=" + name + ", age=" + age + "]";
        }
        
    }
    Users
    package com.bjsxt;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    /**
     * 
     *Thymeleaf入门案例
     *
     */
    @SpringBootApplication
    public class App {
    
        public static void main(String[] args) {
            SpringApplication.run(App.class, args);
        }
    }
    App
    spring.redis.pool.max-idle=10
    spring.redis.pool.min-idle=5
    spring.redis.pool.max-total=20
    
    spring.redis.hostName=192.168.60.128
    spring.redis.port=6379
    application.properties
    package com.bjsxt.test;
    
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
    import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    import com.bjsxt.App;
    import com.bjsxt.pojo.Users;
    
    /**
     * Spring Data Redis测试
     *
     *
     */
    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringBootTest(classes=App.class)
    public class RedisTest {
    
        @Autowired
        private RedisTemplate<String, Object> redisTemplate;
        
        /**
         * 添加一个字符串
         */
        @Test
        public void testSet(){
            this.redisTemplate.opsForValue().set("key", "北京尚学堂");
            System.out.println("==========================");
        }
        
        /**
         * 获取一个字符串
         */
        @Test
        public void testGet(){
            String value = (String)this.redisTemplate.opsForValue().get("key");
            System.out.println(value);
        }
        
        /**
         * 添加Users对象
         */
        @Test
        public void testSetUesrs(){
            Users users = new Users();
            users.setAge(20);
            users.setName("张三丰");
            users.setId(1);
            //重新设置序列化器
            this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
            this.redisTemplate.opsForValue().set("users", users);
        }
        
        /**
         * 取Users对象
         */
        @Test
        public void testGetUsers(){
            //重新设置序列化器
            this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
            Users users = (Users)this.redisTemplate.opsForValue().get("users");
            System.out.println(users);
        }
        
        /**
         * 基于JSON格式存Users对象
         */
        @Test
        public void testSetUsersUseJSON(){
            Users users = new Users();
            users.setAge(20);
            users.setName("李四丰");
            users.setId(1);
            this.redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Users.class));
            this.redisTemplate.opsForValue().set("users_json", users);
        }
        
        /**
         * 基于JSON格式取Users对象
         */
        @Test
        public void testGetUseJSON(){
            this.redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Users.class));
            Users users = (Users)this.redisTemplate.opsForValue().get("users_json");
            System.out.println(users);
        }
    }
    RedisTest
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.10.RELEASE</version>
      </parent>
      <groupId>com.bjsxt</groupId>
      <artifactId>24-spring-boot-redis</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      
      <properties>
      <java.version>1.7</java.version>
      <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
      <thymeleaf-layout-dialect.version>2.0.4</thymeleaf-layout-dialect.version>
      </properties>
      
      <dependencies>
          <!-- springBoot的启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- thymeleaf的启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        
        <!-- Spring Data Redis的启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
         <!-- Test的启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
      </dependencies>
    </project>
    pom.xml
  • 相关阅读:
    java枚举常见用法
    redis初使用
    Linux上搭建svn资源库
    redis集群创建
    大数据学习之Hadoop运行模式
    集群时间同步
    ssh免密登录
    mvc项目问题清单以及解决方法
    Memcached分布式缓存初体验
    Asp.Net 一个请求的处理流程
  • 原文地址:https://www.cnblogs.com/ou-pc/p/9786166.html
Copyright © 2011-2022 走看看