0、前言
redis客户端采用lettuce
1、先上代码目录
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
7、AppRedis
8、运行测试
运行AppRedis启动,浏览器输入:
http://localhost:8088/getUser
输出:
中华人名工程国
2)Redis Desktop Manager
立即查看,db0(3),过段时间(超过expire time),db(1)