专业的网站设计建设,钓鱼网站如何做,杭州房产网信息网官网,西安注册公司代理小编最近在看实战redis#xff0c;黑马的#xff0c;看到有一章是P46封装Redis工具类
废话不多说#xff01;直接上代码
调用的代码#xff1a;
//具体的上下文代码去b站找黑马redis入门到实战 P46集//优雅的写出这样#xff0c;参数意义看方法#xff01;
Shop shop …小编最近在看实战redis黑马的看到有一章是P46封装Redis工具类
废话不多说直接上代码
调用的代码
//具体的上下文代码去b站找黑马redis入门到实战 P46集//优雅的写出这样参数意义看方法
Shop shop queryWithPassThrough(CACHE_SHOP_KEY,id,shop.class,id2-getById(id2)) 方法
//具体的上下文代码去b站找黑马redis入门到实战 P46集//我这里只是写泛型和函数式/**R代表是返回的泛型ID代表参数ID id 因为不确定id之后是什么类型用泛型指定ID id代表是具体的那个类型又这个入参决定IDClassR type 代表是具体的那个类对象又这个入参决定RFuntionID,R dbFallback 函数式ID是入参R是返回String keyPrefix 是redis的key一般是前缀id绑定FuntionID,R dbFallback ID表示参数R表示返回值
*/
pulic R,ID R queryWithPassThrough(String keyPrefix,ID id,ClassR type, FuntionID,R dbFallback){String key keyPrefix id;//1.从redis查询商品缓存String json stringRedisTemplate.opsForValue().get(key);//2.判断是否存在if(StrUtil.isNotBlank(json)){//3.存在直接返回return JSONUtil.toBean(json,type);}//判断命中的是否是空值if(json ! null){return null;}//4.不存在更加ID查询数据库,函数式声明R r dbFallback.apply(id);//5.不存在返回错误if(r null){//将空值写入redis中 stringRedisTemplate.opsForValue().set(key,,CACHE_NULL_TTL,TimeUnit.MINUTES);return null;}//存在写入redis中 stringRedisTemplate.opsForValue().set(key,JSONUtil.toJsonStr(r),CACHE_NULL_TTL,TimeUnit.MINUTES);return r}