前言
由于最近换(mang)了(de)家(yi)公(bi)司接触了新的东西所以很久没有更新了。
这次谈谈Redis,关于Redis
应该很多朋友就算没有用过也听过,算是这几年最流行的NoSql
之一了。
Redis
的应用场景非常多这里就不一一列举了,这次就以一个最简单的也最常用的 缓存数据 来举例。
先来看一张效果图:
作用就是在每次查询接口的时候首先判断Redis
中是否有缓存,有的话就读取,没有就查询数据库并保存到Redis
中,下次再查询的话就会直接从缓存中读取了。
Redis
中的结果:
之后查询redis发现确实是存进来了。
Redis安装与使用
首先第一步自然是安装Redis
。我是在我VPS
上进行安装的,操作系统是CentOS6.5
。
- 下载Redisredis.io/download,我机器上安装的是
3.2.5
- 将下载下来的'reidis-3.2.5-tar.gz'上传到
usr/local
这个目录进行解压。
- 进入该目录。
- 编译安装
make make install
- 修改
redis.conf
配置文件。
这里我只是简单的加上密码而已。
vi redis.conf requirepass 你的密码
- 启动Redis
启动时候要选择我们之前修改的配置文件才能使配置文件生效。
进入src目录 cd /usr/local/redis-3.2.5/src 启动服务 ./redis-server ../redis.conf
- 登陆redis
./redis-cli -a 你的密码
Spring整合Redis
这里我就直接开始用Spring整合毕竟在实际使用中都是和Spring
一起使用的。
- 修改
Spring
配置文件
加入以下内容:
<!-- jedis 配置 --> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="${redis.maxIdle}"/> <property name="maxWaitMillis" value="${redis.maxWait}"/> <property name="testOnBorrow" value="${redis.testOnBorrow}"/> </bean> <!-- redis服务器中心 --> <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="poolConfig" ref="poolConfig"/> <property name="port" value="${redis.port}"/> <property name="hostName" value="${redis.host}"/> <property name="password" value="${redis.password}"/> <property name="timeout" value="${redis.timeout}"></property> </bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="connectionFactory"/> <property name="keySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/> </property> <property name="valueSerializer"> <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"/> </property> </bean> <!-- cache配置 --> <bean id="methodCacheInterceptor" class="com.crossoverJie.intercept.MethodCacheInterceptor"> <property name="redisUtil" ref="redisUtil"/> </bean> <bean id="redisUtil" class="com.crossoverJie.util.RedisUtil"> <property name="redisTemplate" ref="redisTemplate"/> </bean> <!--配置切面拦截方法 --> <aop:config proxy-target-class="true"> <!--将com.crossoverJie.service包下的所有select开头的方法加入拦截 去掉select则加入所有方法w --> <aop:pointcut id="controllerMethodPointcut" expression=" execution(* com.crossoverJie.service.*.select*(..))"/> <aop:pointcut id="selectMethodPointcut" expression=" execution(* com.crossoverJie.dao..*Mapper.select*(..))"/> <aop:advisor advice-ref="methodCacheInterceptor" pointcut-ref="controllerMethodPointcut"/> </aop:config>
- 更多的配置可以直接在源码里面查看:github.com/crossoverJi…。
以上都写有注释,也都是一些简单的配置相信都能看懂。
下面我会着重说下如何配置缓存的。