关于vue+redis+Spring boot三者使用的问题。

作妖的程序员 2021-01-26 02:45:11
字典表的结构和当前表数据。以type_code字段当做key,name和value当做value存入redis

后端查询字典表数据,启动时加载到redis代码:
@Component
@AllArgsConstructor
@Slf4j
public class InitDictionariesCacheRunner implements CommandLineRunner {

private final RedisTemplate redisTemplate;
private final DictionaryBizService dictionaryBizService;

@Override
public void run(String... args) throws Exception {

redisTemplate.delete(AuthConstants.DICTIONARIES_KEY);

//查询所有字典数据
List<UipDictionary> uipDictionaries = dictionaryBizService.list();
//定义字典type数组
List<String> typeCodeList = new ArrayList<>();
//从所有数据中遍历获取type_code存入数据
uipDictionaries.forEach(entity->{
String typeCode = entity.getTypeCode();
typeCodeList.add(typeCode);
});
//遍历type_code数组
typeCodeList.forEach(str->{
//根据type_code查询对应的name和value
List<RedisDictionariesVO> listmap = dictionaryBizService.queryByTypeCode(str);
Map<String, List<RedisDictionariesVO>> dictionariesMap = new TreeMap<>();

Optional.ofNullable(listmap).orElse(new ArrayList<>()).forEach(uipDictionary -> {
dictionariesMap.put(str, listmap);
});
redisTemplate.opsForHash().putAll(AuthConstants.DICTIONARIES_KEY, dictionariesMap);
});

}
}

Service查询代码:

@Override
public List<RedisDictionariesVO> queryByTypeCode(String typeCode) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("type_code", typeCode);
List<UipDictionary> listEntity = this.baseMapper.selectList(queryWrapper);
List<RedisDictionariesVO> maplist = new ArrayList<>();
listEntity.forEach(entity->{
String value = entity.getValue();
String name = entity.getName();
RedisDictionariesVO vo = new RedisDictionariesVO();
vo.setName("NAME:"+name);
vo.setValue("VALUE:"+value);
maplist.add(vo);
});
return maplist;
}


查看到Redis中的内容如下:



请问:
1、使用vue获取redis缓存数据是指直接从redis中获取还是调用后台代码,由后台进行redis查看?vue和后端代码该怎么写?
2、前端增删改查字典信息,调用后端方法后怎么刷新redis缓存数据,redis服务不需要重启?
...全文
497 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
1、一般是由后台负责从redis存取数据,vue直接获取后台返回的数据就可以了
2、刷新数据的话可以利用多长时间去刷新一次,如果立即需要刷新,那就删除key
3、redis 不用重启
lin351550660 2021-01-26
  • 打赏
  • 举报
回复
原则上 java代码对接的redis vue就不需要关心 java代码这么处理数据的 只需要关心这么和java代码交互 所以 既然java代码对接了redis 那么所有对redis的操作 都应该是java代码。 刷新的问题 一般情况下是删除key再重新写入
qybao 2021-01-26
  • 打赏
  • 举报
回复
1 一般来说是调用后台,你的后台是什么?如果是nodejs,可以参考
https://www.jb51.net/article/139223.htm
或者谷歌百度一下nodejs的redis和ioredis package
当然,其他语言怎么用也有相应的包,自己谷歌百度一下就好

2 缓存由redis服务器管理的,redis本社就是作为缓存存在的,所以不需要重启redis服务

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧