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); 
        }
    }
     
  • 相关阅读:
    自愿如此 四 内观
    自愿如此· 三 不做解释
    自愿如此·序言
    排序算法 (08.堆排序)
    2.2 ES6 解构赋值
    2.1 ES6 let 与 const
    ES6学习 (01. 内容概况)
    vue 技术栈进阶 (07. ajax 请求实战)
    vue技术栈进阶(06.状态持久化, 严格模式, 数据双向绑定问题)
    vue技术栈进阶(05. mutations, actions)
  • 原文地址:https://www.cnblogs.com/lige-H/p/8126629.html
Copyright © 2011-2022 走看看