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