Redis Jedisの使用(上)
64793 ワード
JedisはRedis公式の第一選択のJavaクライアント開発パッケージです。
紙面が限られているため、この章は例示的なコードだけを提供して、テスト結果を貼り付けません。下編の末にもとのコードのダウンロードを提供して、自分で実験することができます。
接続ツールクラス
紙面が限られているため、この章は例示的なコードだけを提供して、テスト結果を貼り付けません。下編の末にもとのコードのダウンロードを提供して、自分で実験することができます。
接続ツールクラス
public class RedisUtil {
//Redis IP
private static String ADDR = "127.0.0.1";
//Redis
private static int PORT = 6379;
//
// private static String AUTH = "heqing";
// , 8;
// -1, ; pool maxActive jedis , pool exhausted( )。
private static int MAX_TOTAL = 1024;
// pool idle( ) jedis , 8。
private static int MAX_IDLE = 200;
// , , -1, 。 , JedisConnectionException;
private static int MAX_WAIT = 10000;
private static int TIMEOUT = 10000;
// borrow jedis , validate ; true, jedis ;
private static boolean TEST_ON_BORROW = true;
private static JedisPool jedisPool = null;
private static ShardedJedisPool shardedJedisPool = null;
//redis-server.exe redis.windows.conf // redis
/**
* Redis
*/
static {
try {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(MAX_TOTAL);
config.setMaxIdle(MAX_IDLE);
config.setMaxWaitMillis(MAX_WAIT);
config.setTestOnBorrow(TEST_ON_BORROW);
// jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH); // AUTH
jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT);
List jdsInfoList =new ArrayList();
JedisShardInfo infoA = new JedisShardInfo(ADDR, PORT);
// infoA.setPassword(AUTH); // AUTH
jdsInfoList.add(infoA);
shardedJedisPool = new ShardedJedisPool(config, jdsInfoList);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Jedis
* @return
*/
public synchronized static Jedis getJedis() {
try {
if (jedisPool != null) {
Jedis resource = jedisPool.getResource();
return resource;
} else {
jedisPool = new JedisPool(new JedisPoolConfig(), ADDR);
return jedisPool.getResource();
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public synchronized static ShardedJedis getShardedJedis() {
try {
if (shardedJedisPool != null) {
ShardedJedis shardedJedis = shardedJedisPool.getResource();
return shardedJedis;
}
return null;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* jedis
* @param jedis
*/
@SuppressWarnings("deprecation")
public static void returnResource(final Jedis jedis) {
if (jedis != null && jedisPool !=null ) {
jedisPool.returnResource(jedis);
}
}
@SuppressWarnings("deprecation")
public static void returnResource(final ShardedJedis shardedJedis) {
if (shardedJedis != null && shardedJedisPool !=null ) {
shardedJedisPool.returnResource(shardedJedis);
}
}
public static JedisPool getJedisPool() {
return jedisPool;
}
public static ShardedJedisPool getShardedJedisPool() {
return shardedJedisPool;
}
public static void destroyJedisPool() {
jedisPool.destroy();
}
public static void destroyShardedJedisPool() {
shardedJedisPool.destroy();
}
}
操作キーpublic class TestKey {
private Jedis jedis; // ,
@Before
public void setup() {
jedis = RedisUtil.getJedis();
}
// @Test
public void testAdd() {
System.out.println("============= =============");
// key
System.out.println(" name :"+jedis.exists("name"));
System.out.println(" name,heqing :"+jedis.set("name", "heqing"));
System.out.println(" name :"+jedis.exists("name"));
// qq
System.out.println(" qq :"+jedis.set("qq", "975656343"));
System.out.println(" qq 3 :"+jedis.expire("qq", 3));
try{
Thread.sleep(4000);
}
catch (InterruptedException e){
}
System.out.println(" qq :"+jedis.exists("qq"));
// key , 【 】. -1
System.out.println(" qq :"+jedis.ttl("qq"));
// key
System.out.println(" qq :"+jedis.persist("qq"));
}
// @Test
public void testFind() {
// key
Set keys = jedis.keys("*");
Iterator it=keys.iterator() ;
while(it.hasNext()) {
String key = it.next();
System.out.println(key +" :"+ jedis.type(key));
}
}
@Test
public void testKey() {
// key, key , 。
System.out.println(" name: "+jedis.del("name"));
System.out.println(" name :"+jedis.exists("name"));
}
}
操作文字列(String)public class TestString {
private Jedis jedis; // ,
@Before
public void setup() {
jedis = RedisUtil.getJedis();
}
/**
* jedis.setnx("name","***") ,
* jedis.set("name","***") ,
*/
@Test
public void testAdd() {
System.out.println("============= =============");
jedis.set("name","heqing");
jedis.set("age","26");
System.out.println(jedis.get("name"));
System.out.println(jedis.get("age"));
Set keys = jedis.keys("*");
System.out.println(" "+keys.size()+" ");
System.out.println("============= =============");
System.out.println(" age , age:"+jedis.setnx("age", "27"));
System.out.println(" age :"+jedis.get("age"));
System.out.println(" age , age:"+jedis.set("age", "28"));
System.out.println(" age :"+jedis.get("age"));
}
/**
* set
* append
* incr 1 ,
*/
// @Test
public void testUpdate() {
System.out.println("============= =============");
System.out.println(" name :"+jedis.set("name","heqing-update"));
System.out.println(" name :"+jedis.get("name"));
System.out.println(" name :"+jedis.append("name","-append"));
System.out.println(" name :"+jedis.get("name"));
System.out.println(" age 1 :"+jedis.incr("age"));
System.out.println(" age :"+jedis.get("age"));
System.out.println("============= , =============");
System.out.println("name :"+jedis.getSet("name", "heqing-new"));
System.out.println("name :"+jedis.get("name"));
}
/**
* mset,mget , ,
* :
* jedis.set("name","ssss");
* jedis.set("jarorwar","xxxx");
*/
// @Test
public void testFind() {
System.out.println("============= =============");
System.out.println(" name :"+jedis.getrange("name", 3, 5));
System.out.println("============= , , ( )=============");
Set keys = jedis.keys("*");
System.out.println(" name,age :"+jedis.mset("name","heqing","age","26"));
System.out.println(" name,age :"+jedis.mget("name","age"));
keys = jedis.keys("*");
System.out.println("----> "+keys.size()+" ");
System.out.println(" name,age:"+jedis.del(new String[]{"name","age"}));
System.out.println(" name,age :"+jedis.mget("name","age"));
keys = jedis.keys("*");
System.out.println("----> "+keys.size()+" ");
}
// @Test
public void testDelete() {
System.out.println("============= =============");
System.out.println(" name :"+jedis.del("name"));
System.out.println(" name :"+jedis.get("name"));
Set keys = jedis.keys("*");
System.out.println(" "+keys.size()+" ");
System.out.println("============= =============");
// key ,
System.out.println(" age, 2 "+jedis.setex("age", 2, "27"));
System.out.println(" age :"+jedis.get("age"));
try{
Thread.sleep(3000);
}
catch (InterruptedException e){
e.printStackTrace();
}
System.out.println("3 , age :"+jedis.get("age"));
}
}
操作リスト(List)public class TestList {
private Jedis jedis; // ,
@Before
public void setup() {
jedis = RedisUtil.getJedis();
}
/**
* Lpush ( )。
* key , LPUSH 。 key ,
* Rpush ( )。
* lrange key, , ,jedis.llen -1
**/
@Test
public void testAdd() {
System.out.println("============= =============");
jedis.lpush("java","1");
jedis.lpush("java","2");
jedis.lpush("java","3");
System.out.println(" -java:"+jedis.lrange("java", 0, -1));
jedis.rpush("j2ee","test1");
jedis.rpush("j2ee","test2");
jedis.rpush("j2ee","test3");
System.out.println(" -j2ee:"+jedis.lrange("j2ee", 0, -1));
}
// @Test
public void testUpdate() {
System.out.println("============= =============");
System.out.println("j2ee ---->"+jedis.lrange("j2ee", 0, -1));
//
jedis.lset("j2ee", 0, "test0");
System.out.println("j2ee ---->"+jedis.lrange("j2ee", 0, -1));
}
// @Test
public void testFind() {
System.out.println("============= =============");
System.out.println(" -java:"+jedis.lrange("java", 0, -1));
//
System.out.println("java :"+jedis.llen("java"));
}
/*
* list alpha, SortingParams, sort("list"),
* "ERR One or more scores can't be converted into double"
*
* limit , offset count 。
* offset: , 。count: offset , 。
* sort , , sort alpha 。
* ace 。 desc:
* lrange : start ,end ;-1 ,-2
* lindex
*/
// @Test
public void testOrder() {
System.out.println("============= =============");
System.out.println("Java :"+jedis.lrange("java", 0, -1));
SortingParams sortingParameters = new SortingParams();
sortingParameters.alpha();
sortingParameters.limit(1, -1);
sortingParameters.desc();
System.out.println(" :"+jedis.sort("java",sortingParameters));
System.out.println(" -java:"+jedis.sort("java"));
System.out.println(" - :"+jedis.lrange("java", 1, -1));
System.out.println(" 1 :"+jedis.lindex("java", 1)+"
");
}
/**
* lrem COUNT , VALUE 。
* count>0: ,count<0: ,count = 0: VALUE
* Ltrim , 。
* 0 , 1 -1 , -2
* lpop , key
**/
// @Test
public void testDelete(){
System.out.println("============= =============");
System.out.println(" -j2ee:"+jedis.lrange("j2ee", 0, -1));
// , ( ), add ,
System.out.println(" -java:"+jedis.lrem("j2ee", 1, "test0"));
System.out.println(" -java:"+jedis.lrange("j2ee", 0, -1));
//
System.out.println(" 0-1 :"+jedis.ltrim("j2ee", 0, 1));
System.out.println(" -java:"+jedis.lrange("j2ee", 0, -1));
//
System.out.println(" :"+jedis.lpop("j2ee"));
System.out.println(" -java:"+jedis.lrange("j2ee", 0, -1));
// key
System.out.println(" j2ee :"+jedis.del("j2ee"));
}
}
操作セット(セット)public class TestSet {
private Jedis jedis; // ,
@Before
public void setup() {
jedis = RedisUtil.getJedis();
}
// @Test
public void testAdd() {
System.out.println("============= =============");
System.out.println(" user name:"+jedis.sadd("user", "name"));
System.out.println(" user age:"+jedis.sadd("user", "age"));
System.out.println(" user age:"+jedis.sadd("user", "qq"));
System.out.println(" user :"+jedis.smembers("user"));
}
// @Test
public void testFind() {
System.out.println("============= =============");
System.out.println(" name user :"+jedis.sismember("user", "name"));
System.out.println(" who user :"+jedis.sismember("user", "who"));
System.out.println(" sets :");
Set set = jedis.smembers("user");
Iterator it=set.iterator() ;
while(it.hasNext()){
Object obj=it.next();
System.out.println(obj);
}
System.out.println(" key :"+jedis.srandmember("user"));
System.out.println(" :"+jedis.scard("user"));
}
// @Test
public void testSet(){
System.out.println("============= =============");
System.out.println(" :"+jedis.smembers("user"));
System.out.println(" user qq:"+jedis.srem("user", "qq"));
System.out.println(" qq :"+jedis.smembers("user"));
System.out.println(" user :"+jedis.del("user"));
System.out.println(" :"+jedis.smembers("user"));
}
@Test
public void testOperation() {
System.out.println("============= =============");
System.out.println("user1 name:"+jedis.sadd("user1", "name"));
System.out.println("user1 age:"+jedis.sadd("user1", "age"));
System.out.println("user1 qq:"+jedis.sadd("user1", "qq"));
System.out.println("user2 name:"+jedis.sadd("user2", "name"));
System.out.println("user2 age:"+jedis.sadd("user2", "age"));
System.out.println("user2 e_nail:"+jedis.sadd("user2", "e_nail"));
System.out.println(" user1 :"+jedis.smembers("user1"));
System.out.println(" user2 :"+jedis.smembers("user2"));
System.out.println("user1 user2 :"+jedis.sinter("user1", "user2"));
System.out.println("user1 user2 :"+jedis.sunion("user1", "user2"));
System.out.println("user1 user2 :"+jedis.sdiff("user1", "user2"));
System.out.println("user2 user1 :"+jedis.sdiff("user2", "user1"));
}
}
操作規則集合(sorted set)private Jedis jedis; // ,
@Before
public void setup() {
jedis = RedisUtil.getJedis();
}
// @Test
public void testAdd() {
System.out.println("============= =============");
System.out.println("user name:"+jedis.zadd("user", 2.0, "name"));
System.out.println("user age:"+jedis.zadd("user", 8.0, "age"));
System.out.println("user qq:"+jedis.zadd("user", 5.0, "qq"));
System.out.println("user :"+jedis.zrange("user", 0, -1));//
}
// @Test
public void testFind() {
System.out.println("============= =============");
System.out.println("user :"+jedis.zrange("user", 0, -1));//
System.out.println(" zset :"+jedis.zcard("user"));
System.out.println(" zset (1.0——5.0), :"+jedis.zcount("user", 1.0, 5.0));
System.out.println(" zset user :"+jedis.zscore("user", "qq"));
System.out.println(" 1 2 :"+jedis.zrange("user", 1, 2));
}
@Test
public void testSortedSet(){
System.out.println("============= =============");
System.out.println("user age:"+jedis.zrem("user", "age"));
System.out.println("user :"+jedis.zrange("user", 0, -1));
// key
System.out.println(" user :"+jedis.del("user"));
}
}
操作Mappublic class TestMap {
private Jedis jedis; // ,
@Before
public void setup() {
jedis = RedisUtil.getJedis();
}
// @Test
public void testAddAndUpdate() {
System.out.println("============= =============");
Map map = new HashMap();
map.put("name", "heqing");
map.put("age", "27");
map.put("qq", "975656343");
jedis.hmset("user",map);
Iterator iter=jedis.hkeys("user").iterator();
while (iter.hasNext()){
String key = iter.next();
System.out.println("user :"+key+", :"+jedis.hmget("user",key));
}
}
// @Test
public void testFind() {
System.out.println("============= =============");
System.out.println("user :"+jedis.hkeys("user"));// map key
System.out.println("user :"+jedis.hvals("user"));// map value
// user name, :[minxr]--> List
// redis map key, map key, key ,
List rsmap = jedis.hmget("user", "name", "age", "qq");
System.out.println("user name,age,qq:"+rsmap);
}
@Test
public void testDelete() {
System.out.println("============= =============");
System.out.println(" :"+jedis.hmget("user", "age"));
jedis.hdel("user","age");
System.out.println(" :"+jedis.hmget("user", "age")); // , null
System.out.println("user :"+jedis.hlen("user")); // key user 2
System.out.println(" key user:"+jedis.exists("user"));// key user true
System.out.println(" user :"+jedis.del("user"));
System.out.println(" key user:"+jedis.exists("user"));// key user true
}
}
操作HashMappublic class TestHashMap {
private Jedis jedis; // ,
@Before
public void setup() {
jedis = RedisUtil.getJedis();
}
// @Test
public void testAdd() {
System.out.println("============= =============");
System.out.println("user name heqing :"+jedis.hset("user", "name", "heqing"));
System.out.println("user qq 975656343 :"+jedis.hset("user", "qq", "975656343"));
System.out.println(" age 26 :"+jedis.hincrBy("user", "age", 26));
System.out.println("user :"+jedis.hvals("user"));
}
// @Test
public void testUpdate() {
System.out.println("============= =============");
System.out.println(" user :"+jedis.hvals("user"));
System.out.println("age 100:"+jedis.hincrBy("user", "age", 100l));
System.out.println(" user :"+jedis.hvals("user"));
}
// @Test
public void testFind() {
System.out.println("============= =============");
System.out.println(" name :"+jedis.hexists("user", "name"));
System.out.println(" name :"+jedis.hget("user", "name"));
System.out.println(" age qq :"+jedis.hmget("user", "age", "qq"));
System.out.println(" user key:"+jedis.hkeys("user"));
System.out.println(" user value:"+jedis.hvals("user"));
}
@Test
public void HashOperate() {
System.out.println("============= =============");
System.out.println(" user :"+jedis.hvals("user"));
System.out.println("user qq :"+jedis.hdel("user", "qq"));
System.out.println(" qquser :"+jedis.hvals("user"));
System.out.println(" user :"+jedis.del("user"));
System.out.println(" user :"+jedis.hvals("user"));
}
}