zoukankan      html  css  js  c++  java
  • Java代码封装redis工具类

    maven依赖关系:

            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>2.9.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
                <version>2.6.0</version>
            </dependency>

    源码:

     1 package StudyPro.service;
     2 
     3 import redis.clients.jedis.Jedis;
     4 import redis.clients.jedis.JedisPool;
     5 import redis.clients.jedis.JedisPoolConfig;
     6 
     7 import java.io.IOException;
     8 import java.io.InputStream;
     9 import java.util.Properties;
    10 
    11 /**
    12  * 使用连接池封装Redis连接工具类
    13  */
    14 public class RedisUtils {
    15     private static JedisPool jedisPool;
    16     private static Properties properties;
    17     private static String proPath = "redisConfig.properties";
    18     private static boolean authFlag;
    19     private static String password;
    20 
    21     static {
    22         //读取配置文件
    23         try {
    24             readConfigFile();
    25         } catch (IOException e) {
    26             e.printStackTrace();
    27         }
    28 
    29         // 配置连接池
    30         JedisPoolConfig poolConfig = new JedisPoolConfig();
    31         poolConfig.setMaxIdle(20);
    32         poolConfig.setMinIdle(10);
    33         poolConfig.setMaxTotal(30);
    34         poolConfig.setMaxWaitMillis(3000);
    35         poolConfig.setTestOnBorrow(true);
    36         poolConfig.setTestOnReturn(true);
    37         jedisPool = new JedisPool(properties.getProperty("redis.host"), Integer.valueOf(properties.getProperty("redis.port")));
    38 
    39         //判断是否需要密码验证
    40         if ("1".equals(properties.getProperty("redis.authFlag"))) {
    41             authFlag = true;
    42             password = properties.getProperty("redis.password");
    43             if (password == null) {
    44                 try {
    45                     throw new Exception("redis密码没有读取到!");
    46                 } catch (Exception e) {
    47                     e.printStackTrace();
    48                 }
    49             }
    50         }
    51     }
    52 
    53     private static Properties readConfigFile() throws IOException {
    54         InputStream in = RedisUtils.class.getClass().getResourceAsStream("/" + proPath);
    55         if (in == null) {
    56             throw new IOException("读取不到配置文件:" + proPath);
    57         }
    58         properties = new Properties();
    59         properties.load(in);
    60         in.close();
    61         return properties;
    62     }
    63 
    64     public static Jedis getResource() {
    65         Jedis jedis = jedisPool.getResource();
    66         if (authFlag) {
    67             jedis.auth(password);
    68         }
    69         return jedis;
    70     }
    71 
    72     public static void close() {
    73         jedisPool.close();
    74     }
    75 }

    配置文件redisConfig.properties:

    redis.host=10.15.1.19
    redis.port=16379
    # auth:0不需要密码;1需要密码
    redis.authFlag=1
    redis.password=wC3Xo8E5mlmgMb

    测试代码:

     1 package StudyPro.service;
     2 
     3 import org.junit.Test;
     4 import redis.clients.jedis.Jedis;
     5 
     6 public class TestRedisUtils {
     7     @Test
     8     public void test() {
     9         Jedis jedis = RedisUtils.getResource();
    10 //        jedis.auth("wC3Xo8E5mlmgMb");
    11         System.out.println(jedis.get("a"));
    12         jedis.close();
    13         RedisUtils.close();
    14 
    15     }
    16 }
  • 相关阅读:
    挑战程序设计竞赛第二章、贪心部分
    Life is Strange:《奇异人生》
    算法竞赛进阶指南第二章--题解
    算法竞赛进阶指南第一章题解
    2018 IEEE极限编程大赛 题解
    爬格子呀9.17(图论)
    大数模板(加减乘除幂次开方)
    地理位置(Geolocation)API 简介
    javascript闭包的理解
    H5本地离线存储
  • 原文地址:https://www.cnblogs.com/gongxr/p/9406724.html
Copyright © 2011-2022 走看看