• String类型操作命令及api使用


    在redis中对String类型的操作

     

    一:String操作命令

    1. get、set、del:获取key的值、设置key的值、删除key的值
    2. incr、decr:递增和递减整数值,格式是:incr key值/decr key值
    3. incrby、decrby:递增和递减整数值,可指定增减的数值,格式是:incrby key值 正负数/decrby key值 正负数
    4. incrbyfloat:递增和递减浮点数,格式是:incrbyfloat key值 正负数值
    5. append:在尾部追加值,格式是:append key值 追加的值
    6. getrange、setrange:获取指定索引范围内的值,格式是:getrange key值 起始索引 结束索引
    7. strlen:返回键值的长度,格式是:strlen key值 
    8. mget、mset:同时获取多个键的值、同时设置多个键的值,格式为:mget 多个key值、mset key值 value(key和value可以是多对)
    9. bitcount:获取范围内为1的二进制位数,格式是:bitcount key值[start end] (ps: 这里的start end 是指value的值的起始位置)
    10. getbit、setbit:获取指定位置的二进制位的值、设置指定位置的二进制位的值,格式是:getbit key值 offset索引、setbit key值 offset索引 值
    11. bitop:对多个二进制位进行位操作,格式是:bitop 操作 目的key key值1 key值2,操作有:and、or、xor、not。 (key值可以有多个)
    12. getset:原子的设置key的值,并返回key的旧值,格式是:getset key value 

    二:使用命令和java代码演示

      1.get、set、del:获取key的值、设置key的值、删除key的值

     1 127.0.0.1:6379> keys *
     2 (empty list or set)
     3 127.0.0.1:6379> set test 1
     4 OK
     5 127.0.0.1:6379> get test
     6 "1"
     7 127.0.0.1:6379> del test
     8 (integer) 1
     9 127.0.0.1:6379> get test
    10 (nil)
    11 127.0.0.1:6379>
     1        Jedis jedis = new Jedis("127.0.0.1", 6379);
     2         // set
     3         String set = jedis.set("test", "1");
     4         System.out.println("set = " + set);
     5         // get
     6         String k = jedis.get("test");
     7         System.out.println("k = " + k);
     8         // del
     9         Long del = jedis.del("test");
    10         System.out.println("del = " + del);    

    2.incr、decr:递增和递减整数值,格式是:incr key值/decr key值

     1 127.0.0.1:6379> get test
     2 (nil)
     3 127.0.0.1:6379> set test 1
     4 OK
     5 127.0.0.1:6379> get test
     6 "1"
     7 127.0.0.1:6379> incr test
     8 (integer) 2
     9 127.0.0.1:6379> incr test
    10 (integer) 3
    11 127.0.0.1:6379> incr test
    12 (integer) 4
    13 127.0.0.1:6379> get test
    14 "4"
    15 127.0.0.1:6379> decr test
    16 (integer) 3
    17 127.0.0.1:6379> decr test
    18 (integer) 2
    19 127.0.0.1:6379> get test
    20 "2"
    21 127.0.0.1:6379>
    1         // incr 递增
    2         Long incrk = jedis.incr("test");
    3         System.out.println("incr test = " + incrk);
    4         //decr 递减
    5         Long decr = jedis.decr("test");
    6         System.out.println("decr test = " + decr);

      3.incrby、decrby:递增和递减整数值,可指定增减的数值,格式是:incrby key值 正负数

    1 127.0.0.1:6379> get test
    2 "3"
    3 127.0.0.1:6379> incrby test 1
    4 (integer) 4
    5 127.0.0.1:6379> incrby test 100
    6 (integer) 104
    7 127.0.0.1:6379> get test
    8 "104"
    9 127.0.0.1:6379>
    1         //incrby、decrby:递增和递减整数值
    2         Long incrBy = jedis.incrBy("test", 1);
    3         System.out.println("incrBy = " + incrBy);
    4 
    5         Long decrby = jedis.decrBy("test", 1);
    6         System.out.println("decrby = " + decrby);

      4. incrbyfloat:递增和递减浮点数,格式是:incrbyfloat key值 正负数值

     1 127.0.0.1:6379> incrbyfloat t 1.1
     2 "1.1"
     3 127.0.0.1:6379> keys *
     4 1) "test"
     5 2) "t"
     6 127.0.0.1:6379> get t
     7 "1.1"
     8 127.0.0.1:6379> incrbyfloat t  -1.1
     9 "0"
    10 127.0.0.1:6379> incrbyfloat t -6.66
    11 "-6.66"
    12 127.0.0.1:6379> get t
    13 "-6.66"
    14 127.0.0.1:6379>
    1      // incrbyfloat:递增和递减浮点数,格式是:incrbyfloat key值 正负数值
    2         Double incrByFloat1 = jedis.incrByFloat("t", 4.2);
    3         System.out.println("incrByFloat1 = " + incrByFloat1);
    4 
    5         Double incrByFloat2 = jedis.incrByFloat("t", -6.66);
    6         System.out.println("incrByFloat2 = " + incrByFloat2);    

      5.append:在尾部追加值,格式是:append key值 追加的值

    1 127.0.0.1:6379> set s asd
    2 OK
    3 127.0.0.1:6379> append s 1.1
    4 (integer) 6
    5 127.0.0.1:6379> get s
    6 "asd1.1"
    7 127.0.0.1:6379>
    1       // append:在尾部追加值
    2         Long append = jedis.append("s", "1.1");
    3         System.out.println("append = " + append);

      6.getrange、setrange:获取指定索引范围内的值,格式是:getrange key值 起始索引 结束索引

    1 127.0.0.1:6379> set s 12345678
    2 OK
    3 127.0.0.1:6379> get s
    4 "12345678"
    5 127.0.0.1:6379> getrange s 1 5
    6 "23456"
    7 127.0.0.1:6379>
    1        //getrange、setrange:获取指定索引范围内的值
    2         String getrange = jedis.getrange("s", 0, -1);
    3         System.out.println("getrange = " + getrange);
    4 
    5         String getrange2 = jedis.getrange("s", 1, 5);
    6         System.out.println("getrange2 = " + getrange2);

      7.strlen:返回键值的长度,格式是:strlen key值 

    1 127.0.0.1:6379> get s
    2 "12345678"
    3 127.0.0.1:6379> strlen s
    4 (integer) 8
    5 127.0.0.1:6379>
    1         //strlen:返回键值的长度
    2         Long strlen = jedis.strlen("s");
    3         System.out.println("strlen = " + strlen);

      8.mget、mset:同时获取多个键的值、同时设置多个键的值,格式为:mget 多个key值、mset key值 value(key和value可以是多对)

    1 127.0.0.1:6379> flushAll
    2 OK
    3 127.0.0.1:6379> mset t 1 t2 2 t3 3
    4 OK
    5 127.0.0.1:6379> mget t t2 t3
    6 1) "1"
    7 2) "2"
    8 3) "3"
    9 127.0.0.1:6379>
    1      //mget、mset:同时获取多个键的值、同时设置多个键的值
    2         String mset = jedis.mset("t", "1", "t2", "2", "t3", "3");
    3         System.out.println("mset = " + mset);
    4 
    5         List<String> mget = jedis.mget("t", "t2", "t3");
    6         for (String s : mget) {
    7             System.out.println("mget="+s);
    8         }

      9.bitcount:获取范围内为1的二进制位数,格式是:bitcount key值[start end] (ps: 这里的start end 是指value的值的起始位置)

    1 127.0.0.1:6379> bitcount s
    2 (integer) 5
    3 127.0.0.1:6379> bitcount t 0 1
    4 (integer) 5
    5 127.0.0.1:6379>
     1      // 获取字母"s"对应的二进制
     2         byte[] bytes = "s".getBytes();
     3         String s = Integer.toBinaryString(bytes[0]);
     4         System.out.println("s = " + s);
     5         // bitcount:获取范围内为1的二进制位数
     6         String bitcountset = jedis.set("s", "s");
     7         Long bitcount = jedis.bitcount("s");
     8         System.out.println("bitcount = " + bitcount);
     9         // s对应的value是's'只有一个长度
    10         Long bitcount2 = jedis.bitcount("s", 0, 2);
    11         System.out.println("bitcount2 = " + bitcount2);

      10.getbit、setbit:获取指定位置的二进制位的值、设置指定位置的二进制位的值,格式是:getbit key值 offset索引、setbit key值 offset索引 值

     1 设置指定位置的二进制位的值
     2 127.0.0.1:6379> get s
     3 "s"
     4 127.0.0.1:6379> setbit s 7 0
     5 (integer) 1
     6 127.0.0.1:6379> setbit s 6 1
     7 (integer) 1
     8 127.0.0.1:6379> get s
     9 "r"
    10 127.0.0.1:6379>

    1 getbit key值 offset索引
    2 127.0.0.1:6379> get s
    3 "r"
    4 127.0.0.1:6379> getbit s 1
    5 (integer) 1
    6 127.0.0.1:6379>
     1        // 获取字母"s"对应的二进制
     2         byte[] bytes = "s".getBytes();
     3         String s = Integer.toBinaryString(bytes[0]);
     4         System.out.println("s = " + s);
     5      //setbit 设置指定位置的二进制位的值
     6         jedis.setbit("s", 7l, "0");
     7         String k1 = jedis.get("k1");
     8         System.out.println("k1 = " + k1);
     9         // getbit key值 offset索引
    10         Boolean getbit = jedis.getbit("s", 1);
    11         System.out.println("getbit = " + getbit);    

      11.bitop:对多个二进制位进行位操作,格式是:bitop 操作 目的key key值1 key值2,操作有:and、or、xor、not。 (key值可以有多个)

     1 127.0.0.1:6379> set t a
     2 OK
     3 127.0.0.1:6379> set t1 b
     4 OK
     5 127.0.0.1:6379> keys *
     6 1) "t1"
     7 2) "t"
     8 127.0.0.1:6379> bitop and t2 t t1
     9 (integer) 1
    10 127.0.0.1:6379> bitop or t4 t t2
    11 (integer) 1
    12 127.0.0.1:6379> keys *
    13 1) "t2"
    14 2) "t4"
    15 3) "t1"
    16 4) "t"
    17 127.0.0.1:6379>

      12.getset:原子的设置key的值,并返回key的旧值,格式是:getset key value

    1 127.0.0.1:6379> set t 1
    2 OK
    3 127.0.0.1:6379> getset t 123
    4 "1"
    5 127.0.0.1:6379> get t
    6 "123"
    1      // getset:原子的设置key的值,并返回key的旧值
    2         String getSet = jedis.getSet("t", "123");
    3         System.out.println("getSet = " + getSet);
  • 相关阅读:
    maven安装
    VMware workstation安装报Microsoft Runtime DLL和Intel VT-x错误
    jQuery的拾色器
    Distributed Representations of Words and Phrases and their Compositionality
    Deep Learning for Natural Language Processeing:vector space models
    Deep Learning for Natural Language Processeing : Convex Optimization
    Java Web的一些基础知识
    Java Web1: 邮件发送系统(JSP+Servlet+JavaBean)
    学习效率与方法
    Deep Learning6: Convolution and pooling
  • 原文地址:https://www.cnblogs.com/YuanWeiBlogger/p/12741657.html
Copyright © 2020-2023  润新知