Spring + redis 3、缓存代码实现(利用SpringBootTest做测试)
来源:互联网 发布:大掌柜软件使用教程 编辑:程序博客网 时间:2024/06/16 12:55
1、首先生成一个实体类user
public class User implements Serializable { private String userName; private String userCode; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserCode() { return userCode; } public void setUserCode(String userCode) { this.userCode = userCode; } @Override public String toString() { return "User{" + "userName='" + userName + '\'' + ", userCode='" + userCode + '\'' + '}'; }}
因为简略实现,所以没有service,直接是实现接口
@Servicepublic class UserService { @Cacheable(value = "getUser",keyGenerator = "cacheKeyGenerator") public User getUser(String userName){ System.out.println("正在查询数据库"); User user = new User(); user.setUserCode("2222"); user.setUserName(userName); return user; }// @CachePut(value = "getUser",key = "#userName") @CachePut(value = "getUser",keyGenerator = "cacheKeyGenerator") public User updateUser(String userName){ System.out.println("正在设置数据库"); System.out.println(userName); User user = new User(); user.setUserCode("323"); user.setUserName(userName); return user; }}
测试类
@RunWith(SpringRunner.class)@SpringBootTestpublic class DemoApplicationTests { @Autowired private StringRedisTemplate stringRedisTemplate; @Autowired private UserService userService; @Test public void contextLoads() { } @Test public void TestRedis(){ ValueOperations<String, String> stringStringValueOperations = stringRedisTemplate.opsForValue(); stringStringValueOperations.set("testRedis","zzzz"); } @Test public void TestGetRedis(){ ValueOperations<String, String> stringStringValueOperations = stringRedisTemplate.opsForValue(); String s = stringStringValueOperations.get("testRedis"); System.out.print(s); } @Test public void TestSql(){ Driver driver = new Driver(); Properties props = new Properties(); InputStream input = null; try { input = new FileInputStream("application.properties");//加载Java项目根路径下的配置文件. props.load(input);// 加载属性文件 Connection connect = driver.connect("jdbc:postgresql://XXX:5432/XXX", props); Statement statement = connect.createStatement(); statement.execute("SELECT * FROM ccs_sms"); ResultSet resultSet = statement.getResultSet(); while(resultSet.next()){ String title = resultSet.getString("title"); System.out.println(title); } } catch (Exception e) { e.printStackTrace(); } } @Test public void testGetUser(){ User user = userService.getUser("linjiayong12"); System.out.println(user.toString()); User user1 = userService.getUser("linjiayong12"); System.out.println(user1.toString()); } @Test public void testUpdateUser(){ userService.updateUser("linjiayong12"); }}
未运行testGetUser时、redis缓存如下
在第一次测试testGetUser时
第一次getuser时做了查询数据库操作,第二次访问通过注解 @Cacheable(value = “getUser”,keyGenerator = “cacheKeyGenerator”)将存在redis中的缓存取出
redis-keys缓存如下(Cacheable参数value参数就是存放在redis中zset的key(getUser~keys)keyGenerator 是key策略生成器,与前面文章中实现的RedisConfiguration的cacheKeyGenerator一致)
缓存的数据如下(在序列化中使用了是json序列化操作,将会生成一个json对象)
阅读全文
1 0
- Spring + redis 3、缓存代码实现(利用SpringBootTest做测试)
- spring boot 整合redis对查询数据做缓存( 利用spring的AOP技术)
- spring boot 整合redis对查询数据做缓存( 利用spring的AOP技术)
- spring+redis做数据缓存
- spring aop 做redis缓存
- spring + redis实现缓存
- Spring Boot项目利用Redis实现集中式缓存
- Spring Data+Redis缓存实现
- 使用spring+redis实现缓存
- Spring集成Redis缓存实现
- spring整合redis做缓存实例
- Spring Boot使用redis做数据缓存
- Spring Boot使用redis做数据缓存
- Spring Boot使用redis做数据缓存
- Redis 整合spring ,做mysql的缓存
- spring cache使用redis做缓存
- spring中使用redis做缓存
- Spring Boot使用redis做数据缓存
- 如何查询港股恒生指数成分股信息
- hashMap 的实现原理
- jersey常用的注解类型
- Linux使用jstat命令查看jvm的GC情况
- 剑指offer-奇偶排序
- Spring + redis 3、缓存代码实现(利用SpringBootTest做测试)
- SublimeText3 插件PlainTasks(Todo-list)的使用方法
- android 适配相关知识(二) -- 自动生成swNdp适配方案
- linux下 tomcat7启动超慢
- 如何通过Robomongo连接内网mongo
- n^2和n*log(n)的比较
- 并查集
- git使用
- crontab 定时配置