spring-boot 集成 redis

来源:互联网 发布:line安卓版 无网络 编辑:程序博客网 时间:2024/05/02 11:18

1.安装redis环节我这边忽略了。。。


2.关闭redis所在服务器防火墙


3.修改redis.conf配置文件

注:这一步如不改 直接在redis命令执行没问题,但spring-boot 架构项目 或 jedis api 都有问题

3.1 注释掉绑定地址

# bind 127.0.0.1  

3.2修改守护进程为no 

127.0.0.1:6379> config set daemonize "no"

3.3 修改保护模式为no 

127.0.0.1:6379> config set protected-mode "no"

3.4 设置身份密码验证

找到# requirepass  将前面的#去掉  (后面的是密码  可以修改密码)

3.5 启动reids服务器 

$ cd /opt/redis

$ src/redis-cli /opt/redis-cli/redis.conf


4.maven jar包依赖

<dependency>

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

</dependency>


5. application.properties添加链接配置

spring.redis.host=192.168.xxx.xxx
spring.redis.port=6379
spring.redis.password=ray.liusl
#最大分配的对象数
spring.redis.Pool.maxIdle=10
spring.redis.Pool.maxActive=10

6.RedisCacheConfig redis缓存配置类

@Configuration
@EnableCaching //启用缓存
public class RedisCacheConfig extends CachingConfigurerSupport {


  /**
   * @description cacheManager:缓存管理器 <br>
   *
   * @author ray.liusl<br>
   *         date: 2017年6月19日 上午9:59:33 <br>
   * @since JDK 1.8
   * @param redisTemplate 缓存模版
   * @return 缓存管理对象
   */
  @Bean
  public CacheManager cacheManager(RedisTemplate<?, ?> redisTemplate) {
    CacheManager cacheManager = new RedisCacheManager(redisTemplate);
    return cacheManager;
  }


  /**
   * @description redisTemplate:redis模版操作 <br>
   *
   * @author ray.liusl<br>
   *         date: 2017年6月19日 上午10:00:33 <br>
   * @since JDK 1.8
   * @param factory 连接工厂
   * @return RedisTemplate<String, String> redis模版对象
   */
  @Bean
  public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
    RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();
    redisTemplate.setConnectionFactory(factory);
    RedisSerializer<String> redisSerializer = new StringRedisSerializer();
    redisTemplate.setKeySerializer(redisSerializer);
    redisTemplate.setHashKeySerializer(redisSerializer);
    return redisTemplate;
  }


7. Service层

@Service
public class SampleRedisServiceImpl implements SampleRedisService {
  @Autowired
  private RedisTemplate<String, String> redisTemplate;


  @Autowired
  private UserDao userDao;// 系统用户dao


  @Override
  public Object getStringCache(String key) {
    ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
    // valueOperations.set(key, "random1=" + Math.random());
    return valueOperations.get(key);
  }

//下面User 为实体类 请自行创建下 省略
  @Cacheable(key = "#userId", value = "user")
  @Override
  public User findByUserCode(String userId) {
    return userDao.findById(userId);
  }


8.Controller层代码

@Controller
@RequestMapping("/redis")
public class SampleRedisController {
  @Autowired
  SampleRedisService sampleRedisService;


  @RequestMapping("/getStringCache")
  public void getStringCache(String id) {

User user = sampleRedisService.findById(code);// 从数据库查
   user = (User) sampleRedisService.getStringCache(id); //从缓存取
    System.out.println(user.getName());
  }


9.运行结果及redis服务器存储数据情况

2017-06-19 13:50:57.299
 admin




10.redis其他数据结构大家下面自行再研究研究  这边就开个头。。。


原创粉丝点击