springboot整合redis-lettuce

0、前言

redis客户端采用lettuce

1、先上代码目录

springboot整合redis-lettuce

2、pom文件

1)父pom

            <dependency>
                <groupId>com.alicp.jetcache</groupId>
                <artifactId>jetcache-starter-redis-lettuce</artifactId>
                <version>2.6.0</version>
            </dependency>

2)子模块pom

     <dependency>
            <groupId>com.alicp.jetcache</groupId>
            <artifactId>jetcache-starter-redis-lettuce</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

3、application.yml

jetcache:
  statIntervalMinutes: 1 #统计间隔
  areaInCacheName: false
  local:
    default: #默认area
      type: caffeine
      keyConvertor: fastjson
  remote:
    default:
      type: redis.lettuce #使用lettuce
      keyConvertor: fastjson
      valueEncoder: java
      valueDecoder: java
      poolConfig:
        minIdle: 1
        maxIdle: 50
        maxTotal: 1000
        maxWait: 1000
      #     uri: ['redis://password@192.168.126.131:6379/0','redis://password@192.168.126.132:6379/0','redis://password@192.168.126.133:6379/0']
      uri:
        - redis://192.168.126.133:6379 #redis://密码@IP:端口/库

4、UserController

package com.ct.redis.lettuce.controller;

import com.ct.redis.lettuce.entity.UserEntity;
import com.ct.redis.lettuce.service.impl.UserServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author LaoHa
 * @Date 2021/6/12
 */
@Slf4j
@RestController
public class UserController {
    @Autowired
    UserServiceImpl userService;

    @GetMapping(value = "/getUser")
    public String getUserInfo() {
        userService.getUserNameCache().put("123", "*万岁!");
        log.info("userNameCache : " + userService.getUserNameCache().get("123"));
        UserEntity user = new UserEntity();
        user.setName(userService.getUserNameCache().get("123"));
        userService.getUserCache().put("1234", user);
        log.info("userCache: " + userService.getUserCache().get("1234").getName());
        return userService.getUserCache().get("1234").getName();
    }
}

5、UserService

package com.ct.redis.lettuce.service.impl;

import com.alicp.jetcache.Cache;
import com.alicp.jetcache.anno.CacheType;
import com.alicp.jetcache.anno.CreateCache;
import com.ct.redis.lettuce.entity.UserEntity;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

/**
 * @Author LaoHa
 * @Date 2021/6/12
 */
@Data
@Slf4j
@Service
public class UserServiceImpl {
    /**
     * 定义一个是String类型的远程缓存
      */
    @CreateCache(name ="ct.username", expire = 120, cacheType = CacheType.REMOTE)
    private Cache<String, String> userNameCache;
    /**
     * 定义一个是User对象的二级缓存(本地+远程)
     */
    @CreateCache(name ="ct.user", localExpire = 60, localLimit = 100, expire = 120, cacheType = CacheType.BOTH)
    private Cache<String, UserEntity> userCache;

}

6、UserEntity

同《springboot整合redis

7、AppRedis

同《springboot整合redis

8、运行测试

运行AppRedis启动,浏览器输入:

http://localhost:8088/getUser

输出:

中华人名工程国
上一篇:c++ 智能指针 shared_ptr 在多态上的使用


下一篇:解题报告 (三) Manacher算法