Redis随项目启动或CRUD进行缓存数据

本文介绍了如何在Java项目中使用Redis进行数据缓存。通过`UserCache`类展示了初始化缓存、更新、删除和获取缓存数据的方法。同时,提供了一个`DemoRunner`示例,展示了如何在应用启动时自动加载数据到Redis缓存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public void init() {

userCache = this;

userCache.redisService = this.redisService;

userCache.userDao = this.userDao;

}

/**

  • @param userDtos

  • @return

  • @将数据库查询出来的数据 进行格式化 并存入 map和redis

*/

public static void init(List userDtos) {

userCache.redisService.del(Constant.REDIS_USER);

for (UserDto userDto : userDtos) {

userCache.redisService.hSet(Constant.REDIS_USER, String.valueOf(userDto.getId()), userDto);

}

}

/**

  • @param id

  • @param value

  • @修改缓存中的数据

*/

public static void modify(Integer id, U 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 serDto value) {

if (value == null && id == null) {

new Throwable(“id and value is not null!”);

}

//修改

userCache.redisService.hSet(Constant.REDIS_USER, String.valueOf(id), value);

}

/**

  • @param id

  • @删除缓存中的数据

*/

public static void delete(Integer id) {

if (id == null) {

new Throwable(“id is not null!”);

}

userCache.redisService.hDel(Constant.REDIS_USER, String.valueOf(id));

}

/**

  • @param users

  • @删除缓存中的数据

*/

public static void deleteList(List users) {

if (users == null) {

new Throwable(“id is not null!”);

}

for (Integer id : users) {

userCache.redisService.hDel(Constant.REDIS_USER, String.valueOf(id));

}

}

/**

  • @param id

  • @return

  • @从缓存中获取appid对应的value

*/

public static UserDto userDto(Integer id) {

if (id != null) {

new Throwable(“id is not null!”);

}

if (userCache.redisService.hGet(Constant.REDIS_USER, String.valueOf(id)) != null) {

return JSONObject.parseObject(JSONObject.toJSONString(userCache.redisService.hGet(Constant.REDIS_USER, String.valueOf(id))), UserDto.class);

}

UserDto userDto = new UserDto();

userDto.setId(id);

userDto = userCache.userDao.findOne(userDto, null);

modify(id, userDto);

return userDto;

}

}

[](()1.2.创建DemoRunner

@Order(3)

@Component

public class DemoRunner implements ApplicationRunner {

@Autowired

private UserDao userDao;

@Override

public void run(ApplicationArguments applicationArguments) throws Exception {

UserCache.init(userDao.findAll(new User(), null));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值