使用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"))); 
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值