zoukankan      html  css  js  c++  java
  • Redis工具类

      作为一个重要的数据缓存机制,redis有着广泛的运用。下面是一个redis工具类。  

    import com.google.gson.Gson;
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPoolConfig;
    import redis.clients.jedis.JedisSentinelPool;
    import java.util.ArrayList;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
    /**
     * redis工具类
     */
    public class UtilRedis {
        private static JedisSentinelPool jedisSentinelPool;
        static {
            // redis 属性配置 start
            JedisPoolConfig config = new JedisPoolConfig();
            config.setMaxTotal(5000);
            config.setMaxIdle(256);
            config.setMaxWaitMillis(5000L);
            config.setTestOnBorrow(true);
            config.setTestOnReturn(true);
            config.setTestWhileIdle(true);
            config.setMinEvictableIdleTimeMillis(60000L);
            config.setTimeBetweenEvictionRunsMillis(3000L);
            config.setNumTestsPerEvictionRun(-1);
            // redis 属性配置 end
    
            Set<String> sentinels = new HashSet<String>();
            sentinels.add("127.0.0.1:26379"); // 此处放置ip及端口为 sentinel
            sentinels.add("127.0.0.1:27379"); // 此处放置ip及端口为 sentinel
            // 服务地址,如果有多个sentinel 则逐一add即可
            jedisSentinelPool = new JedisSentinelPool("mymaster", sentinels, config);
        }
    
        public static Jedis getJedis() {
            try {
                return jedisSentinelPool.getResource();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    
        public static void release(Jedis jedis) {
    //        jedis.close();
    
            try {
                jedisSentinelPool.returnResourceObject(jedis);
            } catch (Exception e) {
                e.printStackTrace();
    
                if (jedis.isConnected()) {
                    jedis.disconnect();
                    jedis.close();
                    jedis = null;
                    System.gc();
                }
            }
        }
    
    //    public static void main(String[] args) {
    //        Jedis jedis = UtilRedis.getJedis();
    //        jedis.set("datajava1","xxxx1");
    //        jedis.lpush("datalist1","a","b","c","d");
    //
    //        System.out.println(jedis.get("datajava1"));
    //        System.out.println(jedis.lrange("datalist1",0,-1));
    //
    //        UtilRedis.release(jedis);
    //
    //        System.out.println("-----------------------------------------");
    //
    //        Jedis jedis2 = UtilRedis.getJedis();
    //        jedis2.set("datajava2","xxxx2");
    //        jedis2.lpush("datalist2","a2","b2","c2","d2");
    //
    //        System.out.println(jedis2.get("datajava2"));
    //        System.out.println(jedis2.lrange("datalist2",0,-1));
    //
    //        UtilRedis.release(jedis2);
    //    }
        //将json字符串解析为相应类型的对象
        public static <T> List<T> convertObjs(List<String> jsons, Class<T> clazz) {
            Gson gson = new Gson();
            List<T> objs = new ArrayList<>();
            for (String json : jsons) {
                objs.add(gson.fromJson(json, clazz));
            }
            return objs;
        }
    }  
  • 相关阅读:
    How to convert VirtualBox vdi to KVM qcow2
    (OK)(OK) adb -s emulator-5554 shell
    (OK)(OK) using adb with a NAT'ed VM
    (OK) How to access a NAT guest from host with VirtualBox
    (OK) Creating manually one VMs from an existing VDI file in CLI (VBoxManage) in Fedora 23
    (OK)(OK) Creating VMs from an existing VDI file in CLI (VBoxManage) in Fedora 23
    (OK) Creating_VMs_from_an_existing_VDI_file.txt
    (OK) Creating VMs from an existing VDI file —— in OS X
    (OK) install_IBM_SERVER.txt
    (OK) install chrome & busybox in android-x86_64 —— uninstall chrome
  • 原文地址:https://www.cnblogs.com/lizhangyong/p/8625680.html
Copyright © 2011-2022 走看看