深入实践Spring Boot2.2.3 Redis测试

    xiaoxiao2024-05-09  7

    2.2.3 Redis测试

    如果还没有安装Redis服务器,可以参照本书附录C提供的方法安装,然后在工程的配置文件application.yml中配置连接Redis服务器等参数,如代码清单2-12所示。其中host和port分别表示Redis数据库服务器的IP地址和开放端口,database可以不用指定,由Redis根据存储情况自动选定(注:测试时这些配置是集成在一个配置类中实现的)。

    代码清单2-12 Redis配置

    spring:

        redis:

        # database: 1

            host: 192.168.1.214

            port: 6379

            pool:

                max-idle: 8

                min-idle: 0

                max-active: 8

                max-wait: -1

    现在编写一个JUint测试程序,来演示如何在Redis服务器中存取数据,如代码清单2-13所示。测试程序创建一个部门对象并将其命名为“开发部”,创建一个角色对象并把它命名为admin,创建一个用户对象并把它命名为user,同时设定这个用户属于“开发部”,并把admin这个角色分配给这个用户。接着测试程序使用类名等参数生成一个key,并使用这个key清空原来的数据,然后用这个key存储现在这个用户的数据,最后使用这个key查询用户,并将查到的信息打印出来。

    代码清单2-13 Redis测试程序

    @RunWith(SpringJUnit4ClassRunner.class)

    @ContextConfiguration(classes = {RedisConfig.class, UserRedis.class})

    public class RedisTest {

        private static Logger logger = LoggerFactory.getLogger(RedisTest.class);

     

        @Autowired

        UserRedis userRedis;

     

        @Before

        public void setup(){

            Deparment deparment = new Deparment();

            deparment.setName("开发部");

     

            Role role = new Role();

            role.setName("admin");

     

            User user = new User();

            user.setName("user");

            user.setCreatedate(new Date());

            user.setDeparment(deparment);

     

            List<Role> roles = new ArrayList<>();

            roles.add(role);

     

            user.setRoles(roles);

     

            userRedis.delete(this.getClass().getName()+":userByname:"+user.getName());

            userRedis.add(this.getClass().getName()+":userByname:"+user.getName(), 10L, user);

     

        }

     

        @Test

        public void get(){

            User user = userRedis.get(this.getClass().getName()+":userByname:

    user");

            Assert.notNull(user);

            logger.info("======user====== name:{}, deparment:{}, role:{}",

                user.getName(), user.getDeparment().getName(), user.getRoles().get(0).

    getName());

        }

    }

    要运行这个测试程序,可以在IDEA的Run/Debug Conf?iguration配置中增加一个JUint配置项目,模块选择redis,工作目录选择模块所在的根目录,类选择这个测试程序即dbdemo.redis.test.RedisTest,并将配置保存为redistest。

    使用Debug方式运行测试项目redistest。如果测试通过,会输出一个用户的用户名、所属部门和拥有角色等简要信息,如下所示:

    dbdemo.redis.test.RedisTest - ======user====== name:user, deparment:开发部, role:admin

    对于Redis的使用,还可以将注解方式与调用数据库的方法相结合,那样就不用再编写像上面那样的服务类,并且使用起来更加简单,这将在后面的章节中介绍。

    相关资源:SpringBoot2.3整合redis缓存自定义序列化的实现
    最新回复(0)