zoukankan      html  css  js  c++  java
  • jedis+java

    1. package com.liubo.redis;
      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;
      publicclassRedisClient{
      JedisPool pool;
      Jedis jedis;
      @Before
      publicvoid setUp(){
      pool =newJedisPool(newJedisPoolConfig(),"127.0.0.1");
      jedis = pool.getResource();
      }
      /**
      * key-value String 测试
      */
      @Test
      publicvoid testString(){
      // 1 key-value 存储string
      jedis.set("name","liubo");
      System.out.println("jedis GET "+ jedis.get("name"));
      // 2 key 追加 value
      jedis.append("name"," hello");
      System.out.println("jedis GET "+ jedis.get("name"));
      // 3 覆盖value
      jedis.set("name","boliu");
      System.out.println("jedis GET "+ jedis.get("name"));
      // 4删除key 对应的记录
      jedis.del("name");
      System.out.println("jedis GET "+ jedis.get("name"));
      }
      /**
      * mset 测试
      */
      @Test
      publicvoid testMset(){
      jedis.mset("name","liubo","age","11");
      System.out.println("mset "+ jedis.mget("name","age"));
      // mset [liubo, 11]
      }
      /**
      * Map 测试
      */
      @Test
      publicvoid testMap(){
      Map<String,String> user =newHashMap<String,String>();
      user.put("name","liubo");
      user.put("password","123456");
      jedis.hmset("user", user);
      List<String> rsMap = jedis.hmget("user","password");
      List<String> rsMap2 = jedis.hmget("user","password","name");
      /**
      * /取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List
      * //第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key, 后面的key可以跟多个,是可变参数
      */
      System.out.println(rsMap);// [123456]
      System.out.println(rsMap2);// [123456, liubo]
      // 删除map中的某个键值
      jedis.hdel("user","password");
      System.out.println(jedis.hmget("user","pwd"));// 因为删除了,所以返回的是null
      System.out.println(jedis.hlen("user"));// 返回key为user的键中存放的值的个数1
      System.out.println(jedis.exists("user"));// 是否存在key为user的记录 返回true
      System.out.println(jedis.hkeys("user"));// 返回map对象中的所有key [pwd, name]
      System.out.println(jedis.hvals("user"));// 返回map对象中的所有value [minxr,
      // password]
      Iterator<String> iter = jedis.hkeys("user").iterator();
      while(iter.hasNext()){
      String key = iter.next();
      System.out.println(key +":"+ jedis.hmget("user", key));
      }
      }
      /**
      * jedis操作List
      */
      @Test
      publicvoid 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));
      }
      /**
      * jedis操作Set
      */
      @Test
      publicvoid testSet(){
      // 添加
      jedis.sadd("sname","minxr");
      jedis.sadd("sname","jarorwar");
      jedis.sadd("sname","闵晓荣");
      jedis.sadd("sanme","noname");
      // 移除noname
      jedis.srem("sname","noname");
      System.out.println(jedis.smembers("sname"));// 获取所有加入的value
      System.out.println(jedis.sismember("sname","minxr"));// 判断 minxr
      // 是否是sname集合的元素
      System.out.println(jedis.srandmember("sname"));
      System.out.println(jedis.scard("sname"));// 返回集合的元素个数
      }
      @Test
      publicvoid test()throwsInterruptedException{
      // keys中传入的可以用通配符
      System.out.println(jedis.keys("*"));// 返回当前库中所有的key [sose, sanme, name,
      // jarorwar, foo, sname, java
      // framework, user, braand]
      System.out.println(jedis.keys("*name"));// 返回的sname [sname, name]
      System.out.println(jedis.del("sanmdde"));// 删除key为sanmdde的对象 删除成功返回1
      // 删除失败(或者不存在)返回 0
      System.out.println(jedis.ttl("sname"));// 返回给定key的有效时间,如果是-1则表示永远有效
      jedis.setex("timekey",10,"min");// 通过此方法,可以指定key的存活(有效时间) 时间为秒
      Thread.sleep(5000);// 睡眠5秒后,剩余时间将为<=5
      System.out.println(jedis.ttl("timekey"));// 输出结果为5
      jedis.setex("timekey",1,"min");// 设为1后,下面再看剩余时间就是1了
      System.out.println(jedis.ttl("timekey"));// 输出结果为1
      System.out.println(jedis.exists("key"));// 检查key是否存在
      // System.out.println(jedis.rename("timekey","time"));
      System.out.println(jedis.get("timekey"));// 因为移除,返回为null
      System.out.println(jedis.get("time"));// 因为将timekey 重命名为time 所以可以取得值
      // min
      // jedis 排序
      // 注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的)
      jedis.del("a");// 先清除数据,再加入数据进行测试
      jedis.rpush("a","1");
      jedis.lpush("a","6");
      jedis.lpush("a","3");
      jedis.lpush("a","9");
      System.out.println(jedis.lrange("a",0,-1));// [9, 3, 6, 1]
      System.out.println(jedis.sort("a"));// [1, 3, 6, 9] //输入排序后结果
      System.out.println(jedis.lrange("a",0,-1));
      }
      @Test
      publicvoid testOther(){
      // 清空数据
      System.out.println(jedis.flushDB());
      System.out.println(jedis.echo("foo"));
      // 判断key否存在
      System.out.println(jedis.exists("foo"));
      jedis.set("key","values");
      System.out.println(jedis.exists("key"));
      // 若key不存在,则存储
      jedis.setnx("foo","foo not exits");
      System.out.println(jedis.get("foo"));
      // 设置key的有效期,并存储数据 2秒
      jedis.setex("foo",2,"foo not exits");
      System.out.println(jedis.get("foo"));
      try{
      Thread.sleep(3000);
      }catch(InterruptedException e){
      }
      // 清空数据
      System.out.println(jedis.flushDB());
      // 添加数据
      jedis.lpush("lists","vector");
      jedis.lpush("lists","ArrayList");
      jedis.lpush("lists","LinkedList");
      // 数组长度
      System.out.println(jedis.llen("lists"));
      // 排序
      System.out.println(jedis.sort("lists"));
      // 字串
      System.out.println(jedis.lrange("lists",0,3));
      // 修改列表中单个值
      jedis.lset("lists",0,"hello list!");
      // 获取列表指定下标的值
      System.out.println(jedis.lindex("lists",1));
      // 删除列表指定下标的值
      System.out.println(jedis.lrem("lists",1,"vector"));
      // 删除区间以外的数据
      System.out.println(jedis.ltrim("lists",0,1));
      // 列表出栈
      System.out.println(jedis.lpop("lists"));
      // 整个列表值
      System.out.println(jedis.lrange("lists",0,-1));
      // 清空数据
      System.out.println(jedis.flushDB());
      // 添加数据
      jedis.sadd("sets","HashSet");
      jedis.sadd("sets","SortedSet");
      jedis.sadd("sets","TreeSet");
      // 判断value是否在列表中
      System.out.println(jedis.sismember("sets","TreeSet"));
      ;
      // 整个列表值
      System.out.println(jedis.smembers("sets"));
      // 删除指定元素
      System.out.println(jedis.srem("sets","SortedSet"));
      // 出栈
      System.out.println(jedis.spop("sets"));
      System.out.println(jedis.smembers("sets"));
      //
      jedis.sadd("sets1","HashSet1");
      jedis.sadd("sets1","SortedSet1");
      jedis.sadd("sets1","TreeSet");
      jedis.sadd("sets2","HashSet2");
      jedis.sadd("sets2","SortedSet1");
      jedis.sadd("sets2","TreeSet1");
      // 交集
      System.out.println(jedis.sinter("sets1","sets2"));
      // 并集
      System.out.println(jedis.sunion("sets1","sets2"));
      // 差集
      System.out.println(jedis.sdiff("sets1","sets2"));
      // 清空数据
      System.out.println(jedis.flushDB());
      // 添加数据
      jedis.zadd("zset",10.1,"hello");
      jedis.zadd("zset",10.0,":");
      jedis.zadd("zset",9.0,"zset");
      jedis.zadd("zset",11.0,"zset!");
      // 元素个数
      System.out.println(jedis.zcard("zset"));
      // 元素下标
      System.out.println(jedis.zscore("zset","zset"));
      // 集合子集
      System.out.println(jedis.zrange("zset",0,-1));
      // 删除元素
      System.out.println(jedis.zrem("zset","zset!"));
      System.out.println(jedis.zcount("zset",9.5,10.5));
      // 整个集合值
      System.out.println(jedis.zrange("zset",0,-1));
      }
      }
      
      
      
      
      来自为知笔记(Wiz)
      
      
      
      附件列表
      
       
      

        

  • 相关阅读:
    efwplus框架
    注册区域
    社招面试记录与总结
    验证码 Captcha 之大插件
    发生内存泄漏?
    Flume+LOG4J+Kafka
    协议如何保证可靠传输
    oracle之spool详细使用总结(转)
    SSH协议详解(转)
    oracle nologging用法(转)
  • 原文地址:https://www.cnblogs.com/liubo6/p/4491141.html
Copyright © 2011-2022 走看看