/** * * redis常用命令学习之SET * * @author zhangwei_david * @version $Id: SimpleRedisTest.java, v 0.1 2015年6月6日 下午12:43:16 zhangwei_david Exp $ */ public class SimpleRedisTest { private static final String COMMON_KEY = "jedis"; private static final String INVOKE_COUNT_KEY = "invokeCount"; /** * * @param args */ public static void main(String[] args) { Jedis client = null; try { // 创建Redis客户端,指定host,默认端口号为6397 System.out.println("创建redis客户端"); client = new Jedis("127.0.0.1"); // 删除KEY client.del(COMMON_KEY); /***************************************************************/ /** * SET key value [EX seconds] [PX milliseconds] [NX|XX] * EX:过期时间为秒 * PX:表示过期时间为毫秒 * NX: 只有键不存在时才进行设置 * XX:只有键存在时才进行设置 **/ // 判断key是否存在 System.out.println(COMMON_KEY + " 存在? " + client.exists(COMMON_KEY)); // 放入一个字符串键值对,永不失效 System.out.println("SET jedis value ->" + client.set(COMMON_KEY, "value") + " 过期时间是:" + client.ttl(COMMON_KEY)); // 如果jedis存在就将该key关联的值的过期时间设置为 200秒 System.out.println("SET jedis value EX 100 XX ->" + client.set(COMMON_KEY, "value", "xx", "ex", 200L) + " 过期时间是:" + client.ttl(COMMON_KEY)); // 如果jedis不存在才设置过期时间, 如果已经存在,set的结果返回null System.out.println("SET jedis value EX 100 NX ->" + client.set(COMMON_KEY, "value", "nx", "ex", 200L) + " 过期时间是:" + client.ttl(COMMON_KEY)); // 如果invokeCount不存在则存放该键值对,同时将过期时间设置为20000毫秒 if (client.exists(INVOKE_COUNT_KEY)) { client.del(INVOKE_COUNT_KEY); } System.out.println("SET invokeCount value PX 20000 EX -> " + client.set(INVOKE_COUNT_KEY, "value", "nx", "px", 20000) + " 过期时间是:" + client.ttl(INVOKE_COUNT_KEY)); System.out.println(); } finally { client.close(); } } }
运行的结果是:
创建redis客户端 jedis 存在? false SET jedis value ->OK 过期时间是:-1 SET jedis value EX 100 XX ->OK 过期时间是:200 SET jedis value EX 100 NX ->null 过期时间是:200 SET invokeCount value PX 20000 EX -> OK 过期时间是:20