zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    SQLMAP注入教程-11种常见SQLMAP使用方法详解
    VS2012/2013/2015/Visual Studio 2017 关闭单击文件进行预览的功能
    解决 IIS 反向代理ARR URLREWRITE 设置后,不能跨域跳转 return Redirect 问题
    Spring Data JPA one to one 共享主键关联
    JHipster 问题集中
    Spring Data JPA 定义超类
    Spring Data JPA查询关联数据
    maven命名
    maven仓库
    Jackson读取列表
  • 原文地址:https://www.cnblogs.com/start-fxw/p/6163939.html
Copyright © 2011-2022 走看看