处理数据,对数据库表的数据存储并对redis进行存储更新
package com.jt.service.impl;
import com.jt.dao.MenuMapper;
import com.jt.pojo.Menu;
import com.jt.service.MenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.Duration;
@Service
public class MenuServiceImpl implements MenuService {
@Autowired
private MenuMapper menuMapper;
@SuppressWarnings("all") //去除所有警告
@Resource(name = "redisTemplate")
private ValueOperations valueOperations;
/**
* 基于id查询菜单信息
* 1) 先去redis中查询, redis中没有就去mysql中查询
* 2)将mysql中查询的数据存储到redis中
* @param id
* @return
*/
@Override
public Menu selectById(Long id) {
//从redis中查询
Object obj = valueOperations.get(String.valueOf(id));
if(obj!=null){
System.out.println("Get Data from Redis");
return (Menu) obj;
}
//redis中没有从mysql中查询
Menu menu = menuMapper.selectById(id);
//查询后存储到redis中
valueOperations.set(String.valueOf(id), menu, Duration.ofSeconds(120));
return menu;
}
@Override
public Menu insertMenu(Menu menu) {
//插入到mysql数据库
menuMapper.insert(menu);
//插入到redis
valueOperations.set(String.valueOf(menu.getId()), menu, Duration.ofSeconds(120));
return menu;
}
@Override
public Menu updateMenu(Menu menu) {
menuMapper.updateById(menu);
valueOperations.set(String.valueOf(menu.getId()), menu, Duration.ofSeconds(120));
return menu;
}
}