在ssm项目中使用redis缓存查询数据的方法

在项目中常常需要后台程序的持久层查询数据库来获取数据,然后将数据交给服务层、控制层,最后才交给视图层。如果数据访问缓慢,就会影响程序的运行。

为了加快程序的运行,可以将数据放入缓存中,包括数据缓存和页面缓存。

所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。

其中页面缓存主要是oscache,可以整页或者指定网页某一部分缓存,同时指定他的过期时间,这样在此时间段里面访问的数据都是一样的 。

数据缓存则比较多,有著名的ehcache,redis,memcached等。

本文主要简单的使用Java代码进行redis缓存,即在查询的时候先在service层从redis缓存中获取数据。如果不存在,则再经过dao层从数据库中获取,最后将查询到的数据缓存到redis中;如果存在,直接从redis缓存中读取,并交给controller层。

xml配置:

<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
 <property name="maxTotal" value="${redis.maxTotal}"></property>
 <property name="maxIdle" value="${redis.maxIdle}"></property>
 <property name="testOnBorrow" value="${redis.testOnBorrow}"></property>
 <property name="maxWaitMillis" value="${redis.maxWaitMillis}"></property>
</bean>
<!-- jedis客户端单机版 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
 <constructor-arg name="poolConfig" ref="poolConfig"></constructor-arg>
 <constructor-arg name="host" value="${redis.hostName}"></constructor-arg>
 <constructor-arg name="port" value="${redis.port}"></constructor-arg>
</bean>
<!-- jedis集群版配置 -->
<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
 <constructor-arg name="poolConfig" ref="poolConfig"></constructor-arg>
 <constructor-arg name="nodes">
 <set>
  <bean class="redis.clients.jedis.HostAndPort">
  <constructor-arg name="host" value="127.0.0.1"></constructor-arg>
  <constructor-arg name="port" value="7001"></constructor-arg>
  </bean>
  <bean class="redis.clients.jedis.HostAndPort">
  <constructor-arg name="host" value="127.0.0.1"></constructor-arg>
  <constructor-arg name="port" value="7002"></constructor-arg>
  </bean>
  <bean class="redis.clients.jedis.HostAndPort">
  <constructor-arg name="host" value="127.0.0.1"></constructor-arg>
  <constructor-arg name="port" value="7003"></constructor-arg>
  </bean>
  <bean class="redis.clients.jedis.HostAndPort">
  <constructor-arg name="host" value="127.0.0.1"></constructor-arg>
  <constructor-arg name="port" value="7004"></constructor-arg>
  </bean>
  <bean class="redis.clients.jedis.HostAndPort">
  <constructor-arg name="host" value="127.0.0.1"></constructor-arg>
  <constructor-arg name="port" value="7005"></constructor-arg>
  </bean>
 </set>
 </constructor-arg>
</bean>
[java] view plain copy
java调用
//service层查询时代码
@Autowired
private JedisClient jedisClient;
@Override
public List<User> list() {
 // TODO Auto-generated method stub
 try {
 String json = jedisClient.hget("user", "list");
 if (StringUtils.isNotBlank(json)) {
  List<User> users = JsonUtils.jsonToList(json, User.class);
  return users;
 }
 } catch (Exception e) {
 e.printStackTrace();
 }
 //使用持久层查询数据库
 List<User> list = userMapper.list();
 try {
 jedisClient.hset("user", "list", JsonUtils.objectToJson(list));
 } catch (Exception e) {
 e.printStackTrace();
 }
 return list;
} 

总结

以上所述是小编给大家介绍的在ssm项目中使用redis缓存查询数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

您可能感兴趣的文章:

  • redis与ssm整合方法(mybatis二级缓存)
  • Redis集群与SSM整合使用方法
(0)

相关推荐

  • Redis集群与SSM整合使用方法

    首先是创建redis-cluster文件夹: 因为redis最少需要6个节点(三主三从),为了更好的理解,我这里创建了两台虚拟机(192.168.0.109 192.168.0.110),分别在两台虚拟机的/opt/redis-4.0.1/redis-cluster下创建三个节点文件夹 192.168.0.109: 192.168.0.110: 以上6个节点全部创建完成,分别再在这六个文件夹下创建redis.conf配置文件,其中配置如图: port 7000 bind 192.168.0.10

  • redis与ssm整合方法(mybatis二级缓存)

    SSM+redis整合 ssm框架之前已经搭建过了,这里不再做代码复制工作. 这里主要是利用redis去做mybatis的二级缓存,mybaits映射文件中所有的select都会刷新已有缓存,如果不存在就会新建缓存,所有的insert,update操作都会更新缓存. redis的好处也显而易见,可以使系统的数据访问性能更高.本节只是展示了整合方法和效果,后面会补齐redis集群.负载均衡和session共享的文章. 下面就开始整合工作: 后台首先启动redis-server(后台启动与远程连接l

  • 在ssm项目中使用redis缓存查询数据的方法

    在项目中常常需要后台程序的持久层查询数据库来获取数据,然后将数据交给服务层.控制层,最后才交给视图层.如果数据访问缓慢,就会影响程序的运行. 为了加快程序的运行,可以将数据放入缓存中,包括数据缓存和页面缓存. 所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例.这样做可以减少系统开销,提高系统效率. 其中页面缓存主要是oscache,可以整页或者指定网页某一部分缓存,同时指定他的过期时间,这样在此时间段里面访问的数据都是一样的 . 数据缓存

  • SpringBoot项目中使用redis缓存的方法步骤

    本文介绍了SpringBoot项目中使用redis缓存的方法步骤,分享给大家,具体如下: Spring Data Redis为我们封装了Redis客户端的各种操作,简化使用. - 当Redis当做数据库或者消息队列来操作时,我们一般使用RedisTemplate来操作 - 当Redis作为缓存使用时,我们可以将它作为Spring Cache的实现,直接通过注解使用 1.概述 在应用中有效的利用redis缓存可以很好的提升系统性能,特别是对于查询操作,可以有效的减少数据库压力. 具体的代码参照该

  • javaWeb中使用Redis缓存实例解析

    直接进入主题: 一:serviceImpl定义: @Service public class JedisClientSingleService implements JedisClient { @Autowired private JedisPool jedisPool; @Override public String get(String key) { Jedis jedis = jedisPool.getResource(); String string = jedis.get(key);

  • SSM项目中配置LOG4J日志的方法

    本文介绍了SSM项目中配置LOG4J日志的方法,分享给大家,具体如下: 在pom文件中添加依赖 . <!--Log4j2配置--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.8.1</version> </dependency> <

  • 详解在Java程序中运用Redis缓存对象的方法

    这段时间一直有人问如何在Redis中缓存Java中的List 集合数据,其实很简单,常用的方式有两种: 1. 利用序列化,把对象序列化成二进制格式,Redis 提供了 相关API方法存储二进制,取数据时再反序列化回来,转换成对象. 2. 利用 Json与java对象之间可以相互转换的方式进行存值和取值. 正面针对这两种方法,特意写了一个工具类,来实现数据的存取功能. 1. 首页在Spring框架中配置 JedisPool 连接池对象,此对象可以创建 Redis的连接 Jedis对象.当然,必须导

  • Springboot项目中使用redis的配置详解

    程序结构: 一.配置 1. 在pom.xml中添加依赖 pom.xml文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=&q

  • SSM项目中使用拦截器和过滤器的实现示例

    一.拦截器概述 Spring MVC 也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定 的功能,自定义的拦截器必须实现 HandlerInterceptor 接口 preHandle():这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求 request 进行处理.如果程序员决定该拦截器对请求进行拦截处理后还要调用其他 的拦截器,或者是业务处理器去进行处理,则返回 true:如果程序员决定不需要 再调用其他的组件去处理请求,则返回 false. postHandle(

  • vue项目中禁用浏览器缓存配置案例

    项目发布版本会遇到经常需要清理缓存的问题,以下是项目禁用缓存的实际方法 1.public文件夹中修改 index.html文件meta配置 <meta http-equiv="pragram" content="no-cache" /> <meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate" /> &l

  • SpringBoot中使用redis做分布式锁的方法

    一.模拟问题 最近在公司遇到一个问题,挂号系统是做的集群,比如启动了两个相同的服务,病人挂号的时候可能会出现同号的情况,比如两个病人挂出来的号都是上午2号.这就出现了问题,由于是集群部署的,所以单纯在代码中的方法中加锁是不能解决这种情况的.下面我将模拟这种情况,用redis做分布式锁来解决这个问题. 1.新建挂号明细表 2.在idea上新建项目 下图是创建好的项目结构,上面那个parent项目是其他项目不用管它,和新建的没有关系 3.开始创建controller,service,dao(mapp

  • 在Vue项目中使用jsencrypt.js对数据进行加密传输的方法

    项目需求中需要对用户登录时的密码进行加密,在网上查询些许文章后,最终与后端协商使用jsencrypt.js. jsencrypt.js的github地址: https://github.com/travist/js... 使用yarn安装至Vue项目 yarn add jsencrypt --dep 或者使用npm npm install jsencrypt --dep 引入jsencrypt import { JSEncrypt } from 'jsencrypt' 可封装为全局混合,便于调用

随机推荐