zoukankan      html  css  js  c++  java
  • Spring整合Redis

    1.相关jar包

    除了Spring必须的jar外,还需要spring-data-redis,jedis,commons-pool,这里使用的是maven,也可以拿着url把jar包下下来
        <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.6.2.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.1</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-pool/commons-pool --> <dependency> <groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId> <version>1.6</version> </dependency>

    2.Spring的配置文件 root-context.xml如下:

    <?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">
        
            <!-- 配置连接池 -->
            <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
                <property name="maxTotal" value="500"></property>
                <property name="maxIdle" value="50"></property>
                <property name="testOnBorrow" value="true"></property>
                <property name="maxWaitMillis" value="10000"></property>
            </bean>
    <!-- 配置连接工厂 --> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="192.168.23.128"></property> <property name="port" value="6379"></property> <property name="poolConfig" ref="poolConfig"></property> </bean>
    <!-- 配置模板 -->
         <!-- 注意:StringRedisTemplate是RedisTemplate的子类 --> <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate"> <property name="connectionFactory" ref="jedisConnectionFactory"></property> </bean> </beans>

    3.测试

    package com.spring.wzy;
    
    import java.io.File;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.FileSystemXmlApplicationContext;
    import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
    import org.springframework.data.redis.core.RedisTemplate;
    
    public class MySpringJedis {
        public static ApplicationContext app;
        static{
            
            String se = File.separator;
            app = new FileSystemXmlApplicationContext("E:"+se+"workspace"+se+"SpringSource"+se+"src"+se+"main"+se+"webapp"+se+"WEB-INF"+se+"spring"+se+"root-context.xml");
                
            
        }
        
        public static void main(String[] args) {
            /**
             * 当配置好JedisConnectionFactory后,就可以使用redis了
             * 但是jedisFactory.getConnection()提供的API比较原生态,
             * 所以又封装了一层RedisTemplate,RedisTemplate提供的API是比较好用的,
             * 其实但本质一样
             * */
            
    //        JedisConnectionFactory jedisFactory = (JedisConnectionFactory)app.getBean("jedisConnectionFactory");
    //        jedisFactory.getConnection().set("k2".getBytes(), "testk2".getBytes());
    //        System.out.println(new String(jedisFactory.getConnection().get("str01".getBytes())));
    
            
            /**
             * 以下5个接口提供了redis的5种数据类型的API
             * opsForValue()对应redis的String
             * opsForList()对应redis的List
             * opsForHash()对应redis的Hash
             * opsForSet()对应redis的Set
             * opsForZSet()对应redis的ZSet
             * */
            
            RedisTemplate redisTemplate = (RedisTemplate)MySpringJedis.app.getBean("redisTemplate");
            System.out.println(redisTemplate);

          // redisTemplate.slaveOf(host, port);//主从复制
          // redisTemplate.slaveOfNoOne();
          // redisTemplate.delete(key);
          // redisTemplate.multi();//开启事务
          // redisTemplate.exec()//执行事务

    //        redisTemplate.opsForList().leftPop(key);
    //        redisTemplate.opsForHash().get(key, hashKey);
    //        redisTemplate.opsForSet().add(key, values);
    //        redisTemplate.opsForValue().set(key, value);;
    //        redisTemplate.opsForZSet().add(key, tuples);


          /**
          * 绑定某个key,之后的操作都是对这个key的操作
          * */
          //BoundHashOperations<H, HK, HV> b = redisTemplate.boundHashOps(key)
          //BoundSetOperations<K, V> b = redisTemplate.boundSetOps(key)
          //BoundListOperations<String, Object> b = redisTemplate.boundListOps("arr");
          //BoundValueOperations<String, String> b = redisTemplate.boundValueOps("arr");
          //BoundZSetOperations<K, V> b = redisTemplate.boundZSetOps(key)


    } }
  • 相关阅读:
    域运算符::
    类和结构体类型的异同
    4 链表组件(817)
    2 旋转链表(61)
    1、重排链表(力扣143)
    子字符串排序的关键代码
    C语言四舍五入
    约分
    python学习第八天
    python学习第七天
  • 原文地址:https://www.cnblogs.com/wwzyy/p/6056527.html
Copyright © 2011-2022 走看看