使用Jedis操作Redis-使用Java语言在客户端操作---对key的操作
1 //添加String类型的模拟数据。 2 jedis.set("mykey", "2"); 3 jedis.set("mykey2", "hello"); 4 //添加Set类型的模拟数据。 5 jedis.sadd("mysetkey", "1","2","3"); 6 //添加Hash类型的模拟数据。 7 jedis.hset("mmtest", "username", "stephen"); 8 9 //根据参数中的模式,获取当前数据库中符合该模式的所有key,从输出可以看出,该命令在执行时并不区分与Key关联的Value类型。 10 Set<String> keys = jedis.keys("my*"); 11 System.out.println("keys= "+keys);//keys= [mysetkey, mykey2, mykey] 12 13 //删除了两个keys 14 Long del = jedis.del("mykey","mykey2"); 15 System.out.println("del: "+del);//del: 2 16 17 //查看一下刚刚删除的Key是否还存在,从返回结果看,mykey确实已经删除了。 18 Boolean exists = jedis.exists("mykey"); 19 System.out.println(exists);//false 20 21 //查看一下没有删除的Key,以和上面的命令结果进行比较。 22 Boolean exists2 = jedis.exists("mysetkey"); 23 System.out.println("exists2: "+exists2);//exists2: true 24 25 //将当前数据库中的mysetkey键移入到ID为1的数据库中,从结果可以看出已经移动成功。 26 Long move = jedis.move("mysetkey", 1); 27 System.out.println("move: "+move);//move: 1 28 29 //打开ID为1的数据库。 30 String select = jedis.select(1); 31 System.out.println("select: "+select);//select: OK 32 33 //查看一下刚刚移动过来的Key是否存在,从返回结果看已经存在了。 34 System.out.println(jedis.exists("mysetkey"));//true 35 36 //再重新打开ID为0的缺省数据库。 37 String select2 = jedis.select(0); 38 39 //查看一下刚刚移走的Key是否已经不存在,从返回结果看已经移走。 40 System.out.println(jedis.exists("mysetkey"));//false 41 42 //==============》》》》》》》》》》》》》》》》 43 44 //清空当前选择的数据库 45 jedis.flushAll(); 46 jedis.set("mykey", "hello"); 47 //将mykey改名为mykey1 48 String rename = jedis.rename("mykey", "mykey1"); 49 System.out.println("rename: "+rename);//rename: OK 50 51 //由于mykey已经被重新命名,再次获取将返回null 52 System.out.println(jedis.get("mykey"));//null 53 54 //通过新的键名获取 55 System.out.println(jedis.get("mykey1"));//hello 56 57 //由于mykey已经不存在了,所以返回错误信息。 58 String rename2 = jedis.rename("mykey", "mykey1"); 59 System.out.println("rename2: "+rename2); 60 //redis.clients.jedis.exceptions.JedisDataException: ERR no such key 61 62 63 jedis.set("oldkey", "hello"); 64 jedis.set("newkey", "world"); 65 66 //由于newkey已经存在,因此该命令未能成功执行 67 Long renamenx = jedis.renamenx("oldkey", "newkey"); 68 System.out.println("renamenx: "+renamenx);//renamenx: 0 69 70 //查看newkey的值,发现它也没有被renamenx覆盖。 71 System.out.println(jedis.get("newkey"));//world 72 73 74 //=================>>>>>>>> 75 //清空当前选择的数据库 76 jedis.flushAll(); 77 78 jedis.set("mykey", "hello"); 79 80 //将该键的超时设置为100秒。 81 Long expire = jedis.expire("mykey", 100); 82 System.out.println("expire: "+expire);//expire: 1 83 84 //通过ttl命令查看一下还剩下多少秒。 85 Long ttl = jedis.ttl("mykey"); 86 System.out.println("ttl: "+ttl);//ttl: 98 87 88 //立刻执行persist命令,该存在超时的键变成持久化的键,即将该Key的超时去掉。 89 Long persist = jedis.persist("mykey"); 90 System.out.println("persist: "+persist);//persist: 1 91 92 //ttl的返回值告诉我们,该键已经没有超时了。 93 System.out.println(jedis.ttl("mykey"));//-1 94 95 //为后面的expire命令准备数据。 96 jedis.del("mykey"); 97 98 jedis.set("mykey", "hello"); 99 100 //设置该键的超时为100秒。 101 jedis.expire("mykey", 100); 102 103 //用ttl命令看一下当前还剩下多少秒,从结果中可以看出还剩下96秒。 104 System.out.println(jedis.ttl("mykey"));//96 105 106 //重新更新该键的超时时间为20秒,从返回值可以看出该命令执行成功。 107 System.out.println(jedis.expire("mykey", 20));//1 108 109 //再用ttl确认一下,从结果中可以看出果然被更新了。 110 System.out.println(jedis.ttl("mykey"));//18 111 112 //立刻更新该键的值,以使其超时无效。 113 System.out.println(jedis.set("mykey", "world"));//ok 114 115 //#从ttl的结果可以看出,在上一条修改该键的命令执行后,该键的超时也无效了。 116 System.out.println(jedis.ttl("mykey"));//-1 117 118 //================>>>>>>>>>>>>>>>>> 119 120 //查看键的数据类型 121 //由于mm键在数据库中不存在,因此该命令返回none 122 String type = jedis.type("mm"); 123 System.out.println(type);//none 124 125 String type2 = jedis.type("mykey"); 126 System.out.println("type2= "+type2);//type2= string 127 128 //准备一个值是set类型的键 129 jedis.sadd("mysetkey", "1","2"); 130 131 //mysetkey的键是set,因此返回字符串set。 132 String type3 = jedis.type("mysetkey"); 133 System.out.println("type3= "+type3);//type3= set 134 135 //返回数据库中的任意键。 136 String randomKey = jedis.randomKey(); 137 System.out.println("randomkey= "+randomKey);//randomkey= mykey 这个值是随机的 138 139 //清空当前打开的数据库。 140 jedis.flushAll(); 141 142 143 //由于没有数据了,因此返回null 144 System.out.println(jedis.randomKey());//null 145
不能只满足于写完代码运行结果正确就完事,时常考虑如何让代码更加简练更加容易维护、容易扩展和复用,只有这样才可以真正得到提高
--《来自大话设计模式》