使用Jedis操作redis的实例(一)
使用Jedis操作redis的范例(一)
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"))); }