1.导入jar spring-data-redis.jar jedis commons-pool2
2.编写spring配置文件
<!--redis相关配置-->
<!--连接属性配置,优化-->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<!--最大连接数-->
<property name="maxTotal" value="100"></property>
<!--最大空闲数-->
<property name="maxIdle" value="10"></property>
<!--使用前 检查连接是否有效 默认false -->
<property name="testOnBorrow" value="true"></property>
<!--最大等待毫秒数-->
<property name="maxWaitMillis" value="15000"></property>
<!--连接阻塞时 是否抛异常 默认true 阻塞到超时 false 抛异常 -->
<property name="blockWhenExhausted" value="false"></property>
</bean>
<!--redis的连接工厂-->
<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<!--指定连接配置-->
<property name="poolConfig" ref="jedisPoolConfig"></property>
<!-- 选择使用的 redis的库 -->
<!-- <property name="database" value=""></property>-->
<!--访问ip -->
<property name="hostName" value="127.0.0.1"></property>
<property name="port" value="6379"></property>
</bean>
<!--redis的操作类-->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<!--指定使用连接-->
<property name="connectionFactory" ref="jedisConnectionFactory"></property>
<!--key的序列化机制 无法存储对象类型 -->
<property name="keySerializer">
<bean class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean>
</property>
<property name="valueSerializer">
<bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"></bean>
</property>
</bean>
3.测试代码
// 集成类 @RunWith(SpringJUnit4ClassRunner.class) // 加载spring的配置文件 @ContextConfiguration("classpath:spring-config.xml") public class TestRedis { @Autowired private RedisTemplate redisTemplate; @Test public void testReids(){ //对象的存 redisTemplate.opsForValue().set("user",new User("张三","男")); //对象的取 User user = (User) redisTemplate.opsForValue().get("user"); System.out.println(user); //集合的存 List<User> userList = new ArrayList<User>(); User user = new User("张三","男"); User user1 = new User("李四","男"); userList.add(user); userList.add(user1); redisTemplate.opsForValue().set("userList",userList);*/ //集合的取,map一样(要归结于于redis是通过key和value形式存储数据的) userList = (List<User>) redisTemplate.opsForValue().get("userList"); System.out.println(userList); /** * 增删改(DML)后要需要清除缓存的 */ redisTemplate.delete("user"); redisTemplate.delete("userList"); /** * 模糊查询 */ Set keys = redisTemplate.keys("**user**"); redisTemplate.delete(keys); /** * * 查询时,先从缓存中获取,如果没有,查询数据库,如果有 直接返回。 * 分页查询 * *Service * public List show(){ * List list = redisTemplate.opsForValue().get("List"); * if(bannerList==null){ * 从数据库查询,并将查询结果添加至缓存中 page 1 2 key的唯一性 标志性 * redisTemplate.opsForValue().set("list-"+page+"-"+rows,"数据库查到的值"); * list-1-5 list-2-5 * * 并将数据返回页面 * } * * 直接返回List * * } * * try{ * 没有异常执行此处代码 * * }catch(Exception e){ * 有异常执行此处代码 * } */ } }