Jedis jedis = new Jedis("192.168.10.1", 6379);
1、基本类型操作
/**
* set:设置key值
* get:获取key值
* del:删除key
* append:追加key值
* incr:key值自增1
* incrBy:key值自增,指定步长
* decr:key值自减1
* decrBy:key值自减,指定步长
* expire:为key设置过期时间(秒数)
* setex:设置key值,可指定存活时间(秒数)
* setnx:设置key值。key不存在才会设置,如果key存在则回滚操作,结果返回0,表示没有设置成功
* ttl:time to live,获取key的存活时间(秒),-1表示永不过期
* persist:去掉key的expire设置,不再有失效时间
*/
private static void commonTest(){
jedis.del("username");
System.out.println("get: " + jedis.get("username"));
jedis.set("username", "cjm");
jedis.append("username", ", hello!");
System.out.println("get: " + jedis.get("username"));
jedis.del("username");
System.out.println("get: " + jedis.get("username"));
System.out.println("incr: " + jedis.incr("count"));
System.out.println("decr: " + jedis.decr("count2"));
System.out.println("decrBy: " + jedis.decrBy("count2", 2));
/*
jedis.expire("count2", 3); //item在3秒钟后过期
try {
TimeUnit.SECONDS.sleep(4);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("get: " + jedis.get("count2"));
jedis.setex("count2", 3, "111"); //item存活3秒钟
try {
TimeUnit.SECONDS.sleep(4);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("get: " + jedis.get("count2"));
*/
System.out.println("setnx: " + jedis.setnx("count", "0"));
jedis.setex("count", 30, "111");
System.out.println(jedis.ttl("count"));
jedis.persist("count");
System.out.println(jedis.ttl("count"));
/*
* nxxx的值只能取NX或者XX,如果取NX,则只有当key不存在时才进行set,如果取XX,则只有当key已经存在时才进行set
* expx的值只能取EX或者PX,代表数据过期时间的单位,EX代表秒,PX代表毫秒
*/
System.out.println(jedis.get("count3"));
String val = jedis.set("count3", "111", "NX", "EX", 3); //成功返回OK,失败返回null
System.out.println(val);
}
2、Map类型操作
/**
* hmset:设置key值,值类型为map对象
* type:返回key值的类型,可能值有none, string, hash, set, list, zset
* hkeys:获取所有key
* hvals:获取所有key对应的值
* hmget:一次性获取多个field的值
* hexists:判断field是否存在
* hset:设置field的值
* hgetAll:获取全部内容
* hget:获取field的值
* hdel:删除field
* hincrBy:field值自增1
* hlen:计算field的数目
* hsetnx:设置key值。field不存在才会设置,如果field存在则回滚操作,结果返回0,表示没有设置成功。可以用来实现分布式锁
*/
private static void testMap(){
jedis.del("user");
Map<String, String> map = new HashMap<String, String>();
map.put("name", "cjm");
map.put("age", "33");
map.put("qq", "123456");
jedis.hmset("user", map);
System.out.println("type: " + jedis.type("user"));
System.out.println("hkeys: " + jedis.hkeys("user"));
System.out.println("hvals: " + jedis.hvals("user"));
System.out.println("hmget: " + jedis.hmget("user", "name", "age"));
System.out.println("hexists: " + jedis.hexists("user", "name"));
jedis.hset("user", "pwd", "123");
System.out.println("hgetAll: " + jedis.hgetAll("user"));
System.out.println("hget: " + jedis.hget("user", "pwd"));
jedis.hdel("user", "qq");
System.out.println("hincrBy: " + jedis.hincrBy("user", "count", 1));
System.out.println("hlen: " + jedis.hlen("user"));
Long r = jedis.hsetnx("user", "pwd2", "456");
System.out.println(r);
}
3、Set类型操作
/**
* sadd:往set对象中添加一个值
* smembers:取得set中所有的值
* sismember:判断一个值是否在set中存在
* srandmember:从set中随机取得一个值
* srem:从set中删除一个值
* scard:返回set的item个数
*/
private static void testSet(){
jedis.del("uid");
jedis.sadd("uid", "u001");
jedis.sadd("uid", "u002");
jedis.sadd("uid", "u003");
jedis.sadd("uid", "u004");
jedis.sadd("uid", "u005");
System.out.println("type: " + jedis.type("uid"));
System.out.println(jedis.smembers("uid"));
System.out.println(jedis.sismember("uid", "u006"));
System.out.println(jedis.srandmember("uid"));
jedis.srem("uid", "u003");
System.out.println(jedis.smembers("uid"));
System.out.println(jedis.scard("uid"));
}
4、List类型操作
/**
* 可以实现队列的功能
*
* rpush:从列表尾部插入多个元素
* llen:返回列表中的元素的数量
* lpop:从列表头部移除并返回list的第一个元素
* lrem:从头部开始找,删除n个值
* lrange:从列表中获取指定范围的子集
*/
private static void testList(){
jedis.del("list");
jedis.rpush("list", "111", "222", "333");
System.out.println("llen: " + jedis.llen("list"));
String item = jedis.lpop("list");
System.out.println("lpop: " + item);
System.out.println("llen: " + jedis.llen("list"));
jedis.rpush("list", "444", "555", "666");
jedis.lrem("list", 1, "666");
System.out.println(jedis.lrange("list", 0, jedis.llen("list")));
}