zoukankan      html  css  js  c++  java
  • 初识Jedis

    文章主要分两部分,第一部分:简单分析一些类,第二部分:代码示例

    一、相关类分析

    1、JedisPoolConfig类分析

    JedisPoolConfig类是JedisPool的配置类

    //最大空闲连接数, 默认8个
    config.setMaxIdle(8);
    
    //最大连接数, 默认8个
    config.setMaxTotal(8);
    
    //获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1
    config.setMaxWaitMillis(-1);
    
    //在获取连接的时候检查有效性, 默认false
    config.setTestOnBorrow(false);

    2、JedisPool(ShardedJedisPool)类分析

    Jedis连接池管理类(ShardedJedisPool在使用切片时使用)

    //获取Jedis
    Jedis getResource()

    初始化非切片连接池示例

    JedisPoolConfig config = new JedisPoolConfig();
    config.setMaxTotal(20);
    config.setMaxIdle(5);
    config.setMaxWaitMillis(1000l);
    config.setTestOnBorrow(true);
    jedisPool = new JedisPool(config,"127.0.0.1",6379);

    初始化切片连接池示例

    JedisPoolConfig config = new JedisPoolConfig();
    config.setMaxTotal(20);
    config.setMaxIdle(5);
    config.setMaxWaitMillis(1000l);
    config.setTestOnBorrow(true);

    List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
    shards.add(new JedisShardInfo("127.0.0.1", 6379, "master"));

    // 构造池
    shardedJedisPool = new ShardedJedisPool(config, shards);

    3、Jedis类

    Jedis类是操作redis的核心类

     1 //设置键值对
     2 String set(final String key, String value)
     3 //取键值
     4 String get(final String key)
     5 //判断键是否存在
     6 exists(final String... keys)
     7 exists(final String key)
     8 //删除键值对
     9 Long del(final String... keys)
    10 Long del(String key)
    11 //返回数据类型 "none","string", "list", "set"
    12 String type(final String key)
    13 //模糊匹配键(使用?和*匹配)
    14 //h?llo will match hello hallo hhllo
    15 //h*llo will match hllo heeeello
    16 Set<String> keys(final String pattern)
    17 //随机返回一个key
    18 String 
    19 //设置过期
    20 Long expire(final String key, final int seconds)

    实例化示例:(通过JedisPool获取)

    jedis = jedisPool.getResource(); 

    4、JedisShardInfo类

    JedisShardInfo类是Jedis切片信息类

    实例化示例:

     JedisShardInfo shard1 = new JedisShardInfo("127.0.0.1", 6379, "master");

     二、使用Jedis操作String类型数据

    package com.my.redis.redisTest.test;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    import redis.clients.jedis.JedisShardInfo;
    import redis.clients.jedis.ShardedJedis;
    import redis.clients.jedis.ShardedJedisPool;
    
    public class Test1 {
        
        private static Jedis jedis;//非切片客户端连接
        private  JedisPool jedisPool;//非切片连接池
        private  ShardedJedis shardedJedis;//切片客户端连接
        private  ShardedJedisPool shardedJedisPool;//切片连接池
    
        public Test1(){
            initialPool(); 
    //        initialShardedPool(); 
    //        shardedJedis = shardedJedisPool.getResource(); 
            jedis = jedisPool.getResource(); 
            
        }
        
        public static void main(String[] args) {
            Test1 test = new Test1();
            
            jedis.set("name", "limouren");
            System.out.print(jedis.get("name"));
            jedis.del("name");
            System.out.print(jedis.get("name"));
        }
        
        /**
         * @Description: 初始化非切片连接池  
         * @author lige
         */
        public void initialPool(){
            JedisPoolConfig config = new JedisPoolConfig();
            config.setMaxTotal(20);
            config.setMaxIdle(5); 
            config.setMaxWaitMillis(1000l); 
            config.setTestOnBorrow(true);
            jedisPool = new JedisPool(config,"127.0.0.1",6379,0,"Abc12345");
        }
        
        /**
         * @Description: 初始化切片连接池 
         * @author lige
         */
        public void initialShardedPool(){
            JedisPoolConfig config = new JedisPoolConfig();
            config.setMaxTotal(20);
            config.setMaxIdle(5); 
            config.setMaxWaitMillis(1000l); 
            config.setTestOnBorrow(true);
            
            List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(); 
            shards.add(new JedisShardInfo("127.0.0.1", 6379, "master")); 
            
            // 构造池 
            shardedJedisPool = new ShardedJedisPool(config, shards); 
        }
    }
     
  • 相关阅读:
    17. Letter Combinations of a Phone Number
    16. 3Sum Closest
    15. 3Sum
    14. Longest Common Prefix
    13. Roman to Integer
    12. Integer to Roman
    11. Container With Most Water
    10. Regular Expression Matching
    9. Palindrome Number
    8. String to Integer (atoi)
  • 原文地址:https://www.cnblogs.com/lige-H/p/8126629.html
Copyright © 2011-2022 走看看