原创

集成redis【JWordPress前台项目实战】

写在前面

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。 springboot项目如何集成redis呢?带着这个问题我们继续今天的教程

代码

pom.xml添加redis依赖包
<!-- 添加 spring redis 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency>
配置redis信息
/** * MIT License * Copyright (c) 2018 haihua.liu * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ package cn.liuhaihua.web.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.GenericToStringSerializer; import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.stereotype.Component; /** * @ClassName: RedisConfiguration * @Description: redis初始化配置 * @author Liuhaihua * @date 2018年6月27日 * */ @Configuration @Component public class RedisConfiguration { /** * @Title: redisTemplate * @Description: 初始化一个RedisTemplate<String, Object> bean,后面可以直接使用 * @param @param factory * @param @return 参数 * @return RedisTemplate<String,Object> 返回类型 * @throws */ @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> template = new RedisTemplate<String, Object>(); template.setConnectionFactory(factory); template.setHashValueSerializer(new JdkSerializationRedisSerializer()); template.setKeySerializer(new StringRedisSerializer()); template.setHashKeySerializer(new StringRedisSerializer()); return template; } /** * * @Title: createTemplate * @Description: 初始化一个RedisTemplate<String, Long>,后续直接使用 * @param @param factory * @param @return 参数 * @return RedisTemplate<String,Long> 返回类型 * @throws */ @Bean public RedisTemplate<String, Long> createTemplate(RedisConnectionFactory factory) { final RedisTemplate<String, Long> redisTemplate = new RedisTemplate<String, Long>(); redisTemplate.setConnectionFactory(factory); redisTemplate.setHashValueSerializer(new GenericToStringSerializer<Long>(Long.class)); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new GenericToStringSerializer<Long>(Long.class)); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.afterPropertiesSet(); return redisTemplate; } }
配置redis服务器地址信息
#######################redis############################## spring.redis.database=0 spring.redis.host=115.29.112.65 spring.redis.password=foobaredredis spring.redis.pool.max-active=100 spring.redis.pool.max-idle=8 spring.redis.pool.max-wait=-1 spring.redis.pool.min-idle=1 spring.redis.port=6379

测试

/** * MIT License * Copyright (c) 2018 haihua.liu * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ package cn.liuhaihua.web.config; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.core.annotation.Order; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; /** * @ClassName: CacheInit * @Description: 系统启动时候加载一些启动数据 * @author Liuhaihua * @date 2018年6月27日 * */ @Component @Order(1) public class CacheInit implements CommandLineRunner { private static final Logger log = LoggerFactory.getLogger(CacheInit.class); @Autowired private RedisTemplate<String,Object> redisTemplate; /** * @param args * @throws Exception * @see org.springframework.boot.CommandLineRunner#run(java.lang.String[]) */ @Override public void run(String... args) throws Exception { log.info(">>>>>>>>>>>>>加载缓存数据开始<<<<<<<<<<<<<<<<<<<<<<"); redisTemplate.opsForValue().set("test", "test"); Object test =redisTemplate.opsForValue().get("test"); log.info("取出缓存数据:"+test.toString()); log.info(">>>>>>>>>>>>>初始化缓存数据 结束<<<<<<<<<<<<<<<<<<<<<<"); } }
1530788358(1)

实战项目介绍

项目介绍: 为了满足Java新手朋友课程要求,我特出此教程,由于时间仓促的问题,代码写得不好之处的地方还请多多包涵。 目标如下
  1. 优化wordpress效率低下的问题(目前博主文章数量大概10万+)
  2. 让群里面初级Java朋友们更快上手springboot应用
GIT地址:https://gitee.com/jxuasea/JWordpress
正文到此结束
Loading...