初识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); 
    }
}

 

 

 

 
posted @ 2017-12-27 19:39  薏米仁儿  阅读(275)  评论(0编辑  收藏  举报