Spring与redis集成

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){
         *     有异常执行此处代码
         * }
         */
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值