字典表的結構和當前表資料。以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服務不需要重啟?
uj5u.com熱心網友回復:
1 一般來說是呼叫后臺,你的后臺是什么?如果是nodejs,可以參考https://www.jb51.net/article/139223.htm
或者谷歌百度一下nodejs的redis和ioredis package
當然,其他語言怎么用也有相應的包,自己谷歌百度一下就好
2 快取由redis服務器管理的,redis本社就是作為快取存在的,所以不需要重啟redis服務
uj5u.com熱心網友回復:
原則上 java代碼對接的redis vue就不需要關心 java代碼這么處理資料的 只需要關心這么和java代碼互動所以 既然java代碼對接了redis 那么所有對redis的操作 都應該是java代碼。
重繪的問題 一般情況下是洗掉key再重新寫入
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/252855.html
標籤:Web 開發
