直接进入主题 :
一 : ServiceImpl 定义 :
@Service Public Class JedisClientSingleService mengimplementasikan jedisclient {@autowired private jedispool jedispool; @Override public string get (tombol string) {jedis jedis = jedispool.getResource (); string string = jedis.get (key); jedis.close (); string retring (string string = jedis.get (key); jedis.close (); return string; string@jedis. jedis = jedispool.getResource (); string string = jedis.set (key, value); jedis.close (); return string;}@override public string hget (string hkey, string key) {jedis jedis = jedispool.getReSource (); string string = jedis.hget (hoke, hykis, hykise. hset (string hkey, tombol string, nilai string) {jedis jedis = jedispool.getResource (); long hasil = jedis.hset (hkey, key, value); jedis.close (); hasil pengembalian;}@override public long incr (string key) {jedis jedis = jedispool.getReSour jedis.incr (key); jedis.close (); hasil pengembalian;}@override public long exhire (tombol string, int kedua) {jedis jedis = jedispool.getResource (); long hasil = jedis.expire (key, kedua); jedis.close (); hasil return;}@override public override (Key, kedua); Jedis.close (); return result;}@override public override (Key, Second); jedispool.getResource (); hasil panjang = jedis.ttl (key); jedis.close (); hasil pengembalian;}@override public del long del (kunci string) {jedis jedis = jedispool.getresource (); kuncup panjang = jedis.del (key); jedis.close (); return long hasil = jedis.del (key); jedis.close (); {Jedis jedis = jedaispool.getResource (); hasil panjang = jedis.hdel (hkey, key); jedis.close (); hasil pengembalian;}二 : 添加缓存出(一般写在 Layanan : :
Daftar Publik <RolereSource> gettreegrid () {// 从缓存中获取内容 coba {string cachString = jedisClientSingleService.hget (all_resources_no_condition, hashid); if (! stringutils.isblank (cachString)) {list <roleresource> list = jsonutils.jsonstrtolist (cachString, roleresource.class); daftar pengembalian; }} catch (Exception e) {e.printstacktrace (); } Daftar <RolereSource> Daftar = sessionFactory.opensession (). SelectList ("cn.sys.auth.entity.resourcesmapper.gettreegrid"); // 将缓存中添加缓存 coba {// redsi 只存字符串 , 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 转换换成字符串 转换换成字符串 转换换成字符串 转换换成字符串 转换换成字符串 转换换成字符串 转换换成字符串 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 转换换成字符串 转换换成字符串 把 转换换成字符串 把 转换换成字符串 转换换成字符串 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 把 list 转换换成字符串 string cachString = jsonutils.toJson (daftar); jedisClientSingleService.hset (all_resources_no_condition, hashid, cachstring); } catch (Exception e) {E.PrintStackTrace (); } daftar pengembalian; }逻辑 : 先从缓存中取数据 , 如果缓存中没有 , 就去数据库中取 , 然后把数据存入缓存 , 下次查询时就会从缓存中取。
三 : 缓存的同步
问题来了 , 入过你修改或者删除了数据 , 下次取的时候 , 因为缓存中有数据便在缓存中取 , 这是数据库的数据与缓存中的数据不一致 , 便出现差异 , 这就要缓存同步了。
其实很简单 , 就是在修改 , 删除(如果添加也需要的话) , :
1 : 删除缓存 , 处理数据 , 把数据放如缓存
2 : 删除缓存 , 处理数据(等查询数据的时候会把数据放入缓存 , ,
coba {jedisclientsingleservice.hdel (all_resources_no_condition, hashid); } catch (Exception e) {E.PrintStackTrace (); }总结
以上就是本文关于 Javaweb 中使用 redis 缓存实例解析的全部内容 , 希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题 , 如有不足之处 , 欢迎留言指出。感谢朋友们对本站的支持!