jedis 切片(分布式) 非切片的实例

package testRedis;

importjava.util.ArrayList;

importjava.util.Iterator;

importjava.util.List;

importjava.util.Set;

importredis.clients.jedis.Jedis;

importredis.clients.jedis.JedisPool;

importredis.clients.jedis.JedisPoolConfig;

importredis.clients.jedis.JedisShardInfo;

importredis.clients.jedis.ShardedJedis;

importredis.clients.jedis.ShardedJedisPool;

importredis.clients.jedis.SortingParams;

importredis.clients.util.Pool;

/**

*@author WHD

*2015-4-19

*/

public classRedisClient {

// 获取数据库的连接,非切片客户端连接

privateJedis jedis;

// 非切片连接池

privateJedisPool jedisPool;

//切片客户端

privateShardedJedis shardedJedis;

// 切片连接池

privateShardedJedisPool shardedJedisPool;

// 构造函数

publicRedisClient(){

// 初始化连接池

initialPool();

// 初始化切片连接池

initialShardedPool();

// 从切片池中获取切片实例

shardedJedis=shardedJedisPool.getResource();

// 从非切片池中获取实例

jedis=jedisPool.getResource();

}

// 初始化非切片池

privatevoid initialPool(){

// 池的配置

JedisPoolConfig config= newJedisPoolConfig();

// 最大连接数

config.setMaxActive(20);

// 最大空闲连接数

config.setMaxIdle(5);

//获取连接时的最大等待毫秒数

config.setMaxWait(10001);

//在空闲时检查有效性, 默认false

config.setTestOnBorrow(false);

jedisPool= new JedisPool(config,"127.0.0.1",6379);

}

// 初始化切片池

privatevoid initialShardedPool(){

// 池基本配置

JedisPoolConfig config= new JedisPoolConfig();

// 最大连接个数

config.setMaxActive(20);

// 最大空闲连接数

config.setMaxIdle(2);

//获取连接时的最大等待毫秒数

config.setMaxWait(10001);

// 在空闲时检查有效性,默认false

config.setTestOnBorrow(false);

//slave 连接, 这里实现了集群的功能,配置多个redis服务实现请求的分配进行负载均衡

List<JedisShardInfo> shards= newArrayList<JedisShardInfo>();

shards.add(newJedisShardInfo("192.168.0.106",6379,"master"));

shards.add(newJedisShardInfo("192.168.0.100",6379,"master"));

// 构造池

shardedJedisPool= newShardedJedisPool(config,shards);

}

public void show (){

KeyOperate();

StringOperate();

ListOperate();

// 释放连接

jedisPool.returnResource(jedis);

// 释放连接

shardedJedisPool.returnResource(shardedJedis);

}

//

private void KeyOperate(){

System.out.println("清空所有数据库"+jedis.flushDB());

// 判断key是否存在

System.out.println("判断key999建是否存在"+shardedJedis.exists("key999"));

System.out.println("新曾key001value001键值对"+shardedJedis.set("key001","value001"));

System.out.println("判断key001是否存在"+shardedJedis.exists("key001"));

//输出系统中所有的key

System.out.println("新增key002value002"+shardedJedis.set("key002","value002"));

System.out.println("系统中的所有键如下:");

Set<String> keys=jedis.keys("*");

Iterator<String> it= keys.iterator();

while(it.hasNext()){

String key= it.next();

System.out.println(key);

}

// 删除某个key 如果不从在则忽略

System.out.println("系统中删除key002"+jedis.del("key002"));

System.out.println("判断是否存在"+jedis.exists("key002"));

// 设置key 001 的过期时间

System.out.println("设置key001的过期时间为五秒"+jedis.expire("key001",5));

try{

Thread.sleep(2000);

}catch(Exception e){

e.printStackTrace();

}

// 查看某个key的剩余时间 单位秒 不存在或永久 返回-1

System.out.println("查看key001的剩余时间"+jedis.ttl("key001"));

//移除某个key的剩余时间

System.out.println("删除key001的剩余时间"+jedis.persist("key001"));

//移除后在看时间

System.out.println("剩余时间"+jedis.ttl("key001"));

// 查看key 所存储的值的类型

System.out.println("查看key所存储的值的类型"+jedis.type("key001"));

}

/**

* String 类型

*/

private void StringOperate(){

System.out.println("+=+++++++String+++++++===");

//清空数据

System.out.println("清空数据库中的数据"+jedis.flushDB());

System.out.println("========曾==========");

jedis.set("key001","value001");

jedis.set("key002","value002");

jedis.set("key003","value003");

System.out.println("以新增3个键值对 如下:");

System.out.println(jedis.get("key001"));

System.out.println(jedis.get("key002"));

System.out.println(jedis.get("key003"));

System.out.println("=======删除======");

System.out.println("删除key003键值对"+jedis.del("key003"));

System.out.println("获取key003建对应的值"+jedis.get("key003"));

System.out.println("======改=====");

// 直接覆盖原来的值

System.out.println("直接覆盖原来的值"+jedis.set("key001","value001-update"));

System.out.println("获取key001 对应的新值 "+jedis.get("key001"));

// 如果有的话 则不修改如果没有的话则要修改

System.out.println("没有添加,有则无效"+jedis.setnx("key001","value001 a new "));

//获取这个值看看那

System.out.println("修改了之后应该是value001 a new 获取这个值"+jedis.get("key001"));

// 直接覆盖原来的数据

System.out.println("在ke0y002原值后面追加"+jedis.append("key002","appendString"));

System.out.println("获取key002的新值"+jedis.get("key002"));

System.out.println("======曾,删查多个=======");

/**

* mset mget 同时新增 修改 查询多个键值对

*/

// 一次性新增多个值

我不但的回首,伫足,然后时光扔下我轰轰烈烈的向前奔去。

jedis 切片(分布式) 非切片的实例

相关文章:

你感兴趣的文章:

标签云: