• redis 常用操作


    主要包括常用的列表(list)、集合(set)、有序集合(sorted set)、哈希表(hash)等数据结构,以及其他特性支持。

    一、redis存储字符串
     jedis.set("name","xinxin");//向key-->name中放入了value-->xinxin  
     jedis.append("name", " is my lover"); //拼接
     jedis.del("name");  //删除某个键
     //设置多个键值对
     jedis.mset("name","liuling","age","23","qq","476777XXX");
     jedis.incr("age"); //进行加1操作

    二、redis操作Map

    //-----添加数据----------  
     Map<String, String> map = new HashMap<String, String>();
     map.put("qq", "123456");
     jedis.hmset("user",map);
    
    //取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List  
     //第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数  
     List<String> rsmap = jedis.hmget("user", "name", "age", "qq");
    
    //删除map中的某个键值  
     jedis.hdel("user","age");
    
     //删除map中的某个键值  
      jedis.hdel("user","age");
      jedis.hmget("user", "age")); //因为删除了,所以返回的是null  
      jedis.hlen("user")); //返回key为user的键中存放的值的个数2 
      jedis.exists("user"));//是否存在key为user的记录 返回true  
      jedis.hkeys("user"));//返回map对象中的所有key  
      jedis.hvals("user"));//返回map对象中的所有value 
    
       Iterator<String> iter=jedis.hkeys("user").iterator();  
       while (iter.hasNext()){  
             String key = iter.next();  
               System.out.println(key+":"+jedis.hmget("user",key));  
       }  

    三、jedis操作List

    可以使用列表模拟队列(queue)、堆栈(stack),并且支持双向的操作(L或者R)
    //添加数据 jedis.lpush("java framework","spring"); //取出所有数据jedis.lrange是按范围取出, //第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有 jedis.lrange("java framework",0,-1) jedis.rpush("a", "1"); //右边入队列 jedis.lpush("a","6"); // 左边入队列 //注意,此处的rpush和lpush是List的操作。是一个双向链表 //排序正序 jedis.sort("a")

    //设置:位置1处为新值
    jedis.lset("userList", 1, "Nick Xu");

     //返回长度:

    Long size = jedis.llen("userList");

     //进行裁剪:包含

    jedis.ltrim("userList", 1, 2);
     

    四、jedis操作Set 

      集合中的元素是无序的,因此元素也不能重复。 
    //添加 jedis.sadd("user","who"); //移除noname jedis.srem("user","who"); jedis.smembers("user"));//获取所有加入的value jedis.sismember("user", "who"));//判断 who 是否是user集合的元素 jedis.srandmember("user")); jedis.scard("user"));//返回集合的元素个数

      // 遍历集合:

      Set<String> fruit = jedis.smembers("fruit");

      // 集合的操作:包括集合的交运算(sinter)、差集(sdiff)、并集(sunion)

      jedis.sadd("food", "bread", "milk"); 
      Set<String> fruitFood = jedis.sunion("fruit", "food");
     

    五、 sorted set:

    有序集合在集合的基础上,增加了一个用于排序的参数。 
    
    // 1. 有序集合:根据“第二个参数”进行排序。
    
    jedis.zadd("user", 22, "James");
    // 2. 再次添加:元素相同时,更新为当前的权重。
    
    jedis.zadd("user", 24, "James");
    //  3. zset的范围:找到从0到-1的所有元素。
    
    Set<String> user = jedis.zrange("user", 0, -1);
     // 4. 说明:我们可能还有一个疑虑,集合是怎么做到有序的呢? 
       实际上,上述user的数据类型为java.util.LinkedHashSet 

    六、其他一些操作

    //1. 对key的操作: 
    //  @ 对key的模糊查询:
    
    Set<String> keys = jedis.keys("*");
    Set<String> keys = jedis.keys("user.userid.*");
    //  @ 删除key:
    
    jedis.del("city");
    //    @ 是否存在:
    
    Boolean isExists = jedis.exists("user.userid.14101");
    //  2. 失效时间: 
    //  @ expire:时间为5s
    
    jedis.setex("user.userid.14101", 5, "James");
    //  @ 存活时间(ttl):time to live
    
    Long seconds = jedis.ttl("user.userid.14101");
     // @ 去掉key的expire设置:不再有失效时间
    
    jedis.persist("user.userid.14101");
    // 3. 自增的整型: 
    //  @ int类型采用string类型的方式存储:
    
    jedis.set("amount", 100 + "");
    //  @ 递增或递减:incr()/decr()
    
    jedis.incr("amount");
     // @ 增加或减少:incrBy()/decrBy()
    
    jedis.incrBy("amount", 20);
    // 4. 数据清空: 
    //  @ 清空当前db:
    
    jedis.flushDB();
    //    @ 清空所有db:
    
    jedis.flushAll();
    //  5. 事务支持: 
    //  @ 获取事务:
    
    Transaction tx = jedis.multi();
      //  @ 批量操作:tx采用和jedis一致的API接口
    
    for(int i = 0;i < 10;i ++) {
         tx.set("key" + i, "value" + i); 
         System.out.println("--------key" + i);
         Thread.sleep(1000);  
    }
     // @ 执行事务:针对每一个操作,返回其执行的结果,成功即为Ok
    
    List<Object> results = tx.exec();
  • 相关阅读:
    命令练习题2
    l命令练习题1
    命令用法习题,yum仓库的创建 chapter02
    网络基础知识
    Linux常用的命令及使用方法
    Linux 常见的常识及常用快捷键方式
    一条命令解决mac版本python IDLE无法输入中文问题
    RS232串口的Windows编程纪要
    在龙芯小本上安装Debain8.10
    mac电脑进行可见光通信实验要点
  • 原文地址:https://www.cnblogs.com/start-fxw/p/6163939.html
Copyright © 2020-2023  润新知