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层进行修改