redis的使用(下)

妖精的绣舞 提交于 2019-12-05 13:47:34

Jedis的使用?

  Jedis就是redis提供的Java客户端工具(在Java代码中,直接通过jedis就可以操作redis数据库)

  加载jedis依赖

  连接redis服务器(创建jedis对象;相当于jdbc的connection、mybatis的sqlsession)

  通过jedis对象中的方法完成redis的操作(jedis对象中的方法名和redis中的命令名是一样)

  把jedis封装成工具类:获取jedis对象;关闭jedis对象

  

  序列化:

    把Java对象转换成字节数据/json串

    通过commons-lang3提供的工具类/json解析工具

  反序列化

    把字节数组/json串转换为Java对象

redis作为缓存服务器

  A:缓存

    缓存就是一个内存区域

    缓存:把sql语句执行之后的结果存储在内存中;如果发送同样的sql语句获取数据,就直接从缓存中获取数据,而不去操作数据库

    缓存中不适应存储笔记重要的事务:比如财务

    缓存:是为了提高检索效率

    程序一旦执行了增删改操作,就会把缓存清空==》防止脏读

    

    mybaitis中提供了缓存支持

      一级缓存:sqlSession级别的缓存:用同一个sqlSession对象,执行多次相同的查询操作,第一次从数据库中获取数据,后面的多次从缓存中读取数据

      一次缓存是默认开启的

    

      二级缓存:sqlSessionFactory级别的缓存:用同一个sqlSessionFactory对象,获取到多个sqlSession,这多个sqlSession执行相同的查询操作,第一次从数据库中获取数据,后面的多次从缓存中获取数据

      1):要使用二级缓存,需要开启

  

    在mapper文件中指定要使用二级缓存

      

      2):sqlSession必须关闭掉,数据才会被缓存下拉

    

      3):一旦执行了增删改操作,缓存会被清空(flush)

      4):redis实现缓存

      mybatis默认是用缓存类PerpetualCache作缓存处理

  

      mybatis支持自定义缓存:可以写一个像PertualCache一样的类,作为mybatis的缓存类;在自定义缓存类中,操作redis完成缓存的处理

    

      为什么要使用redis作为mybatis的缓存工具?

      1):redis可以做到持久化

      2):redis支持集群环境:可以搭建专门的缓存服务器集群

    步骤:

      1):写一个缓存类,需要实现mybatis提供的缓存接口Cache

      2):实现里面的方法

         对比着PerpetualCache完成:把PerpetualCache放入到map中的数据,用redis完成

  

      3):把自定义的缓存类应用到映射文件中:

    

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!