百度网站介绍,木兰姐网站建设,网站后台有显示前台没有,好看的企业网站首页Redis的数据类型String使用场景实战
String模型的使用场景
常见面试题#xff1a;redis在你们项目是怎么使用的#xff1f;String类型说一个#xff0c;还有其他用处没#xff1f;
知识回顾 // 获取redis的key为 WATCH_KEEPER_PREFIX wka 的值String wka …Redis的数据类型String使用场景实战
String模型的使用场景
常见面试题redis在你们项目是怎么使用的String类型说一个还有其他用处没
知识回顾 // 获取redis的key为 WATCH_KEEPER_PREFIX wka 的值String wka redisTemplate.opsForValue().get(redisOperationUtils.WATCH_KEEPER_PREFIX wka);// 设置value的值一般情况不用设置过期时间redisTemplate.opsForValue().set(redisOperationUtils.WATCH_KEEPER_PREFIX wka, xxx);使用场景
1对象存储key可以是用户的idvalue对象的JSON对象 2分布式锁key是锁的唯一值value是一个脚本比如lua脚本 3可以做计数器使用 比如在微信朋友圈点赞 incr wxarticle:readcount:{朋友圈内容id} get wxarticle:readcount:{朋友圈内容id}
代码实战
1场景是做一个班级值日表每天负责擦黑板从第一个人开始轮有生成老师可以在系统中调动值日人员的顺序。 2因为班级人数是有限可以放到一个数组里面写一个定时任务自动生成下一个月值日计划并在入库前记录当前待添加数据库最后一条值班人姓名 3上代码
依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency
注入实现 Autowiredprivate StringRedisTemplate redisTemplate;Overridepublic void automaticGenerationWatchBill(LocalDate startDate, LocalDate endDate) {ListWatchBillEntity entityList new ArrayList();// 1、获取redis上次最后一天 班级值班人员如果为空从头开始String lastStudent redisTemplate.opsForValue().get(redisOperationUtils.WATCH_BILL student);// 名字为空 默认从头开始String knownName Optional.ofNullable(lastStudent).orElse(xxx);// 如果结束时间 开始时间就一直执行LocalDate currentDate startDate;Date currentTime new Date();while (!currentDate.isAfter(endDate)) {// 组装值班学生数据..// 日期加1currentDate currentDate.plusDays(1);entityList.add(entity);}// 批量插入if (!CollectionUtils.isEmpty(entityList)) {watchBillMapper.batchInsertWatchBill(entityList);// 设置最后一天 值班同学名字redisTemplate.opsForValue().set(redisOperationUtils.WATCH_BILL student, entityList.get(entityList.size() - 1).getWathchStudent());}}
遇到的问题
1如果问题value对象如果开始不存在话需要给一个初始值
喜欢我的文章的话点个阅读或者点个点赞是我编写博客的动力持续更新中