利用JAVA操作Redis---demo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | package com.js.ai.modules.pointwall.interfac; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; /*利用JAVA操作Redis*/ public class RedisTest { JedisPool pool; Jedis jedis; @Before public void setUp(){ pool= new JedisPool( new JedisPoolConfig(), "127.0.0.1" ); jedis=pool.getResource(); jedis.auth( "mypass" ); } /*Redis存储初级的字符串*/ @Test public void testBasicString(){ //存取数据 结果:xfzh jedis.set( "name" , "xfzh" ); System.out.println(jedis.get( "name" )); //修改数据1:在原来基础上修改 结果:xfzhgoho jedis.append( "name" , "goho" ); System.out.println(jedis.get( "name" )); //修改数据2:覆盖 结果:goho jedis.set( "name" , "goho" ); System.out.println(jedis.get( "name" )); //删除key对应的记录 结果:null jedis.del( "name" ); System.out.println(jedis.get( "name" )); } /*jedis操作Map*/ @Test public void testMap(){ Map<String, String> user= new HashMap<String, String>(); user.put( "name" , "kij" ); user.put( "age" , "8" ); user.put( "sex" , "女" ); jedis.hmset( "user" , user); //取出user中的name,执行结果:[kij]-->注意结果是一个泛型的List List<String> rsmap=jedis.hmget( "user" , "name" ); System.out.println(rsmap); //删除map中的某个键值 jedis.hdel( "user" , "name" ); System.out.println(jedis.hmget( "user" , "name" )); //结果:[null] System.out.println(jedis.hlen( "user" )); //返回key为user的键中存放的值的个数2 System.out.println(jedis.exists( "user" )); //是否存在key为user的记录 返回true System.out.println(jedis.hkeys( "user" )); //返回map对象中的所有key [age, sex] System.out.println(jedis.hvals( "user" )); //返回map对象中的所有value [8, 女] Iterator<String> iterator=jedis.hkeys( "user" ).iterator(); while (iterator.hasNext()){ String key=iterator.next(); System.out.println(key+ ":" +jedis.hmget( "user" , key)); } } /*jedis操作List */ @Test public void testList(){ //开始前,先移除所有的内容 jedis.del( "java framework" ); System.out.println(jedis.lrange( "java framework" , 0 , - 1 )); //结果:[] //先向key java framework中存放三条数据 jedis.lpush( "java framework" , "spring" ); jedis.lpush( "java framework" , "struts" ); jedis.lpush( "java framework" , "hibernate" ); //再取出所有数据jedis.lrange是按范围取出, // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有 System.out.println(jedis.lrange( "java framework" , 0 , - 1 )); //结果:[hibernate, struts, spring] } /*jedis操作Set */ @Test public void testSet(){ //添加 jedis.sadd( "sname" , "okl" ); jedis.sadd( "sname" , "okpl" ); jedis.sadd( "sname" , "ogkl" ); jedis.sadd( "sname" , "okdrl" ); //移除noname jedis.srem( "sname" , "okdrl" ); System.out.println(jedis.smembers( "sname" )); //获取所有加入的value 结果:[okl, okpl, ogkl] System.out.println(jedis.sismember( "sname" , "ogkl" )); //判断 ogkl 是否是sname集合的元素 结果:true System.out.println(jedis.sismember( "sname" , "ogukl" )); //判断 ogukl 是否是sname集合的元素 结果:false System.out.println(jedis.srandmember( "sname" )); //只提供集合 key 参数时,返回一个元素 结果:okl System.out.println(jedis.scard( "sname" )); //返回集合的元素个数 结果:3 } @Test public void test() throws InterruptedException{ //keys中传入的可以用通配符 System.out.println(jedis.keys( "*" )); //返回当前库中所有的key 结果:[java framework, user, sname] System.out.println(jedis.keys( "*name" )); //结果:[sname] System.out.println(jedis.del( "sname" )); ////删除key为sname的对象 删除成功返回1 删除失败(或者不存在)返回 0 System.out.println(jedis.ttl( "user" )); //返回给定key的有效时间,如果是-1则表示永远有效 jedis.setex( "golo" , 10 , "min" ); //通过此方法,可以指定key的存活(有效时间) 时间为秒 Thread.sleep( 5000 ); //睡眠5秒后,剩余时间将为<=5 System.out.println(jedis.ttl( "golo" )); //输出结果为5 jedis.setex( "golo" , 1 , "min" ); //设为1后,下面再看剩余时间就是1了 System.out.println(jedis.ttl( "golo" )); //输出结果为1 System.out.println(jedis.exists( "key" )); //检查key是否存在 结果: false System.out.println(jedis.rename( "golo" , "aogo" )); System.out.println(jedis.get( "golo" )); //因为移除,返回为null 结果:null System.out.println(jedis.get( "aogo" )); //因为将timekey 重命名为time 所以可以取得值 min 结果: min //jedis排序 //注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的) jedis.del( "b" ); //先清除数据,再加入数据进行测试 jedis.rpush( "b" , "2" ); jedis.lpush( "b" , "3" ); jedis.lpush( "b" , "1" ); jedis.lpush( "b" , "8" ); jedis.lpush( "b" , "0" ); System.out.println(jedis.lrange( "b" , 0 , - 1 )); //结果:[0, 8, 1, 3, 2] System.out.println(jedis.sort( "b" )); //输入排序后结果:[0, 1, 2, 3, 8] System.out.println(jedis.lrange( "b" , 0 , - 1 )); //结果:[0, 8, 1, 3, 2] } } |