o2o项目加入缓存

Redis的实践

将一些不常修改且频繁访问的数据放到Redis中,并且当数据有被修改或者删除的情况,则需要同步到更新Redis中的信息

准备工作

引入Jedis:pom.xml

<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.0.1</version>
</dependency>

设置Redis属性:redis.properties

redis.hostname=127.0.0.1
redis.port=6379
redis.database=0
redis.pool.maxActive=100
redis.pool.maxIdle=20
redis.pool.maxWait=30000
redis.pool.testOnBorrow=true

配置spring-dao.xml让其可以读取redis.properties

<!-- 加载数据库配置文件 -->
    <context:property-placeholder
            location="classpath:jdbc.properties,classpath:redis.properties"/>

编写spring-redis.xml进行redis的配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- Redis连接池的设置 -->
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <!-- 控制一个pool可分配多少个jedis实例 -->
        <property name="maxTotal" value="${redis.pool.maxActive}" />
        <!-- 连接池中最多可空闲maxIdle个连接 ,这里取值为20,表示即使没有数据库连接时依然可以保持20空闲的连接,而不被清除,随时处于待命状态。 -->
        <property name="maxIdle" value="${redis.pool.maxIdle}" />
        <!-- 最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常 -->
        <property name="maxWaitMillis" value="${redis.pool.maxWait}" />
        <!-- 在获取连接的时候检查有效性 -->
        <property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
    </bean>

    <!-- 创建Redis连接池,并做相关配置 -->
    <bean id="jedisWritePool" class="com.panlei.o2o.cache.JedisPoolWriper"
          depends-on="jedisPoolConfig">
        <constructor-arg index="0" ref="jedisPoolConfig" />
        <constructor-arg index="1" value="${redis.hostname}" />
        <constructor-arg index="2" value="${redis.port}" type="int" />
    </bean>

    <!-- 创建Redis工具类,封装好Redis的连接以进行相关的操作 -->
    <bean id="jedisUtil" class="com.panlei.o2o.cache.JedisUtil" scope="singleton">
        <property name="jedisPool">
            <ref bean="jedisWritePool" />
        </property>
    </bean>
    <!-- Redis的key操作 -->
    <bean id="jedisKeys" class="com.panlei.o2o.cache.JedisUtil$Keys"
          scope="singleton">
        <constructor-arg ref="jedisUtil"></constructor-arg>
    </bean>
    <!-- Redis的Strings操作 -->
    <bean id="jedisStrings" class="com.panlei.o2o.cache.JedisUtil$Strings"
          scope="singleton">
        <constructor-arg ref="jedisUtil"></constructor-arg>
    </bean>
</beans>

实际编码:修改区域信息,轮播图信息,店铺类别信息的获取,加入redis

1、区域信息修改

  这里主要是对Service层进行修改

  

猜你喜欢

转载自www.cnblogs.com/panlei3707/p/10885927.html