java 操作redis

来源:互联网 发布:以色列军力知乎 编辑:程序博客网 时间:2024/06/01 08:41
Java代码  收藏代码
  1. import org.junit.After;  
  2. import org.junit.Before;  
  3. import org.junit.Test;  
  4. import redis.clients.jedis.Jedis;  
  5. import redis.clients.jedis.JedisPool;  
  6. import redis.clients.jedis.JedisPoolConfig;  
  7.   
  8. import javax.sound.midi.Soundbank;  
  9. import java.util.*;  
  10.   
  11. /** 
  12.  * @author: flychao88 
  13.  * Time: 2012.5.7 16:23:15 
  14.  */  
  15. public class RedisTest {  
  16.     JedisPool pool;  
  17.     Jedis jedis;  
  18.     @Before  
  19.     public void setUp() {  
  20.         pool = new JedisPool(new JedisPoolConfig(), "172.16.100.184");  
  21.   
  22.         jedis = pool.getResource();  
  23.         jedis.auth("password");  
  24.     }  
  25.   
  26.     /** 
  27.      * Redis存储初级的字符串 
  28.      * CRUD 
  29.      */  
  30.     @Test  
  31.     public void testBasicString(){  
  32.         //-----添加数据----------  
  33.         jedis.set("name","minxr");//向key-->name中放入了value-->minxr  
  34.         System.out.println(jedis.get("name"));//执行结果:minxr  
  35.   
  36.         //-----修改数据-----------  
  37.         //1、在原来基础上修改  
  38.         jedis.append("name","jarorwar");   //很直观,类似map 将jarorwar append到已经有的value之后  
  39.         System.out.println(jedis.get("name"));//执行结果:minxrjarorwar  
  40.   
  41.         //2、直接覆盖原来的数据  
  42.         jedis.set("name","闵晓荣");  
  43.         System.out.println(jedis.get("name"));//执行结果:闵晓荣  
  44.   
  45.         //删除key对应的记录  
  46.         jedis.del("name");  
  47.         System.out.println(jedis.get("name"));//执行结果:null  
  48.   
  49.         /** 
  50.          * mset相当于 
  51.          * jedis.set("name","minxr"); 
  52.          * jedis.set("jarorwar","闵晓荣"); 
  53.          */  
  54.         jedis.mset("name","minxr","jarorwar","闵晓荣");  
  55.         System.out.println(jedis.mget("name","jarorwar"));  
  56.   
  57.     }  
  58.   
  59.     /** 
  60.      * jedis操作Map 
  61.      */  
  62.     @Test  
  63.     public void testMap(){  
  64.         Map<String,String> user=new HashMap<String,String>();  
  65.         user.put("name","minxr");  
  66.         user.put("pwd","password");  
  67.         jedis.hmset("user",user);  
  68.         //取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List  
  69.         //第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数  
  70.         List<String> rsmap = jedis.hmget("user""name");  
  71.         System.out.println(rsmap);  
  72.   
  73.         //删除map中的某个键值  
  74. //        jedis.hdel("user","pwd");  
  75.         System.out.println(jedis.hmget("user""pwd")); //因为删除了,所以返回的是null  
  76.         System.out.println(jedis.hlen("user")); //返回key为user的键中存放的值的个数1  
  77.         System.out.println(jedis.exists("user"));//是否存在key为user的记录 返回true  
  78.         System.out.println(jedis.hkeys("user"));//返回map对象中的所有key  [pwd, name]  
  79.         System.out.println(jedis.hvals("user"));//返回map对象中的所有value  [minxr, password]  
  80.   
  81.         Iterator<String> iter=jedis.hkeys("user").iterator();  
  82.         while (iter.hasNext()){  
  83.             String key = iter.next();  
  84.             System.out.println(key+":"+jedis.hmget("user",key));  
  85.         }  
  86.   
  87.     }  
  88.   
  89.     /** 
  90.      * jedis操作List 
  91.      */  
  92.     @Test  
  93.     public void testList(){  
  94.         //开始前,先移除所有的内容  
  95.         jedis.del("java framework");  
  96.         System.out.println(jedis.lrange("java framework",0,-1));  
  97.        //先向key java framework中存放三条数据  
  98.        jedis.lpush("java framework","spring");  
  99.        jedis.lpush("java framework","struts");  
  100.        jedis.lpush("java framework","hibernate");  
  101.        //再取出所有数据jedis.lrange是按范围取出,  
  102.        // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有  
  103.        System.out.println(jedis.lrange("java framework",0,-1));  
  104.     }  
  105.   
  106.     /** 
  107.      * jedis操作Set 
  108.      */  
  109.     @Test  
  110.     public void testSet(){  
  111.         //添加  
  112.         jedis.sadd("sname","minxr");  
  113.         jedis.sadd("sname","jarorwar");  
  114.         jedis.sadd("sname","闵晓荣");  
  115.         jedis.sadd("sanme","noname");  
  116.         //移除noname  
  117.         jedis.srem("sname","noname");  
  118.         System.out.println(jedis.smembers("sname"));//获取所有加入的value  
  119.         System.out.println(jedis.sismember("sname""minxr"));//判断 minxr 是否是sname集合的元素  
  120.         System.out.println(jedis.srandmember("sname"));  
  121.         System.out.println(jedis.scard("sname"));//返回集合的元素个数  
  122.     }  
  123.   
  124.     @Test  
  125.     public void test() throws InterruptedException {  
  126.         //keys中传入的可以用通配符  
  127.         System.out.println(jedis.keys("*")); //返回当前库中所有的key  [sose, sanme, name, jarorwar, foo, sname, java framework, user, braand]  
  128.         System.out.println(jedis.keys("*name"));//返回的sname   [sname, name]  
  129.         System.out.println(jedis.del("sanmdde"));//删除key为sanmdde的对象  删除成功返回1 删除失败(或者不存在)返回 0  
  130.         System.out.println(jedis.ttl("sname"));//返回给定key的有效时间,如果是-1则表示永远有效  
  131.         jedis.setex("timekey"10"min");//通过此方法,可以指定key的存活(有效时间) 时间为秒  
  132.         Thread.sleep(5000);//睡眠5秒后,剩余时间将为<=5  
  133.         System.out.println(jedis.ttl("timekey"));   //输出结果为5  
  134.         jedis.setex("timekey"1"min");        //设为1后,下面再看剩余时间就是1了  
  135.         System.out.println(jedis.ttl("timekey"));  //输出结果为1  
  136.         System.out.println(jedis.exists("key"));//检查key是否存在  
  137.         System.out.println(jedis.rename("timekey","time"));  
  138.         System.out.println(jedis.get("timekey"));//因为移除,返回为null  
  139.         System.out.println(jedis.get("time")); //因为将timekey 重命名为time 所以可以取得值 min  
  140.   
  141.         //jedis 排序  
  142.         //注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的)  
  143.         jedis.del("a");//先清除数据,再加入数据进行测试  
  144.         jedis.rpush("a""1");  
  145.         jedis.lpush("a","6");  
  146.         jedis.lpush("a","3");  
  147.         jedis.lpush("a","9");  
  148.         System.out.println(jedis.lrange("a",0,-1));// [9, 3, 6, 1]  
  149.         System.out.println(jedis.sort("a")); //[1, 3, 6, 9]  //输入排序后结果  
  150.         System.out.println(jedis.lrange("a",0,-1));  
  151.   
  152.     }  
0 0
原创粉丝点击