springboot 手动集成redis

  • 导入maven 依赖
      <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>2.7.3</version>
       </dependency>
    

      

  • 自己封装方法
    public class RedisClient {
    
        private JedisPool pool = null;
    
        /**
         * <p>
         * 传入ip和端口号构建redis 连接池
         * </p>
         *
         * @param ip   ip
         * @param prot 端口
         */
        public RedisClient(String ip, int prot) {
            if (pool == null) {
                JedisPoolConfig config = new JedisPoolConfig();
                // 控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;
                // 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
                // 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。
                config.setMaxIdle(5);
                // 表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;
                config.setMaxWaitMillis(1000 * 100);
                // 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
                config.setTestOnBorrow(false);
                // pool = new JedisPool(config, "192.168.0.121", 6379, 100000);
                // 测试环境的redis有密码
                pool = new JedisPool(config, ip, prot, 5000);
            }
        }
    
    
        public RedisClient(String ip, int prot, String password) {
            if (pool == null) {
                JedisPoolConfig config = new JedisPoolConfig();
                // 控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;
                // 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
                // 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。
                config.setMaxIdle(5);
                // 表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;
                config.setMaxWaitMillis(1000 * 100);
                // 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
                config.setTestOnBorrow(false);
                // pool = new JedisPool(config, "192.168.0.121", 6379, 100000);
                if (StringUtils.isBlank(password)) {
                    password = null;
                }
                pool = new JedisPool(config, ip, prot, 5000, password);
            }
        }
    
        /**
         *
         * @param ip 服务器地址
         * @param prot 端口号
         * @param database 选着redis的第几个库, 默认的第0g, redis默认具有16个库,  不建议选着这个方法
         */
        public RedisClient(String ip, int prot, int database) {
            if (pool == null) {
                JedisPoolConfig config = new JedisPoolConfig();
                // 控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;
                // 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
                // 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。
                config.setMaxIdle(5);
                // 表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;
                config.setMaxWaitMillis(1000 * 100);
                // 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
                config.setTestOnBorrow(false);
                // pool = new JedisPool(config, "192.168.0.121", 6379, 100000);
                pool = new JedisPool(config, ip, prot, 5000, null, database);
            }
        }
    
        /**
         * <p>
         * 通过配置对象 ip 端口 构建连接池
         * </p>
         *
         * @param config 配置对象
         * @param ip     ip
         * @param prot   端口
         */
        public RedisClient(JedisPoolConfig config, String ip, int prot) {
            if (pool == null) {
                pool = new JedisPool(config, ip, prot, 5000);
            }
        }
    
        /**
         * <p>
         * 通过配置对象 ip 端口 超时时间 构建连接池
         * </p>
         *
         * @param config  配置对象
         * @param ip      ip
         * @param prot    端口
         * @param timeout 超时时间
         */
        public RedisClient(JedisPoolConfig config, String ip, int prot, int timeout) {
            if (pool == null) {
                pool = new JedisPool(config, ip, prot, timeout);
            }
        }
    
        /**
         * <p>
         * 通过连接池对象 构建一个连接池
         * </p>
         *
         * @param pool 连接池对象
         */
        public RedisClient(JedisPool pool) {
            if (this.pool == null) {
                this.pool = pool;
            }
        }
    
    
        /**
         * <p>
         * 通过key获取储存在redis中的value
         * </p>
         * <p>
         * 并释放连接
         * </p>
         *
         * @param key
         * @return 成功返回value 失败返回null
         */
        public String get(String key) {
            Jedis jedis = null;
            String value = null;
            try {
                jedis = pool.getResource();
                value = jedis.get(key);
            } catch (Exception e) {
                pool.returnBrokenResource(jedis);
                e.printStackTrace();
            } finally {
                returnResource(pool, jedis);
            }
            return value;
        }
    

     

  • 构建redis

        @Bean(name = "redisClient")
        public RedisClient redisClient(){
            RedisClient redisClient = new RedisClient("127.0.0.1",6379,"redispassword");
            return redisClient;
        }
    

      

转载于:https://www.cnblogs.com/haitao-xie/p/6278092.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值