zoukankan      html  css  js  c++  java
  • 3、Redis中对String类型的操作命令

    写在前面的话:读书破万卷,编码如有神
    --------------------------------------------------------------------
    --------------------------------------------------------------------

    1、对String类型的操作

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

    操作如下:

    Java代码示例如下:

     1 import redis.clients.jedis.Jedis;
     2 
     3 /**
     4  * redis中对于字符串类型的: get、set、del 操作示例
     5  */
     6 public class String_get_set_del_operation {
     7 
     8     public static void main(String[] args) {
     9         Jedis jedis = new Jedis("127.0.0.1",6379);
    10         /**
    11          * 示例1: 相当于执行 set k1 v1
    12          */
    13         String set = jedis.set("k1", "1");
    14         System.out.println("set = " + set);
    15         System.out.println("======================");
    16 
    17         /**
    18          * 示例2: 相当于执行 get k1
    19          */
    20         String k1 = jedis.get("k1");
    21         System.out.println("k1 = " + k1);
    22         System.out.println("======================");
    23 
    24         /**
    25          * 示例3:相当于执行 del k1
    26          */
    27         Long delk1 = jedis.del("k1");
    28         System.out.println("delk1 = " + delk1);
    29     }
    30 }

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

    操作如下:

    Java代码示例如下:

     1 /**
     2  * redis中对于字符串类型的: incr、decr 操作示例
     3  */
     4 public class String_incr_decr_operation {
     5 
     6     public static void main(String[] args) {
     7         Jedis jedis = new Jedis("127.0.0.1",6379);
     8         /**
     9          * 示例1: 相当于执行 incr k1
    10          */
    11         Long incrk1 = jedis.incr("k1");
    12         System.out.println("incr k1 = " + incrk1);
    13 
    14         System.out.println("======================");
    15 
    16         /**
    17          * 示例2: 相当于执行 decr k1
    18          */
    19         Long decrk1 = jedis.decr("k1");
    20         System.out.println("decr k1 = " + decrk1);
    21     }
    22 }

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

    操作如下:

    Java代码示例如下:

     1 /**
     2  * redis中对于字符串类型的: incrby、decrby 操作示例
     3  */
     4 public class String_incrby_decrby_operation {
     5     public static void main(String[] args) {
     6         Jedis jedis = new Jedis("127.0.0.1",6379);
     7         /**
     8          * 示例1: 相当于执行 incrBy k1 v1
     9          */
    10         Long incrBy = jedis.incrBy("k1",4);
    11         System.out.println("incrBy = " + incrBy);
    12 
    13         System.out.println("======================");
    14 
    15         /**
    16          * 示例2: 相当于执行 decrBy k1 v1
    17          */
    18         Long decrBy = jedis.decrBy("k1",2);
    19         System.out.println("decrBy = " + decrBy);
    20     }
    21 }

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

    操作如下:

    Java代码示例如下:

     1 import redis.clients.jedis.Jedis;
     2 
     3 /**
     4  * redis中对于字符串类型的: incrbyfloat操作示例
     5  */
     6 public class String_incrbyfloat_operation {
     7     public static void main(String[] args) {
     8         Jedis jedis = new Jedis("127.0.0.1",6379);
     9         /**
    10          * 示例1: 相当于执行 incrbyfloat k1 v1
    11          */
    12         Double incrByFloat1 = jedis.incrByFloat("k1", 4.2);
    13         System.out.println("incrByFloat1 = " + incrByFloat1);
    14 
    15 
    16         Double incrByFloat2 = jedis.incrByFloat("k1", -2.2);
    17         System.out.println("incrByFloat2 = " + incrByFloat2);
    18 
    19     }
    20 }

    1.5、append:在尾部追加值,格式是:append key值 追加的值

    操作如下:

    Java代码示例如下:

     1 /**
     2  * redis中对于字符串类型的: append操作示例
     3  */
     4 public class String_append_operation {
     5 
     6     public static void main(String[] args) {
     7         Jedis jedis = new Jedis("127.0.0.1",6379);
     8         /**
     9          * 示例1: 相当于执行 append k1 v1
    10          */
    11         Long append = jedis.append("k1", "1");
    12         System.out.println("append = " + append);
    13     }
    14 }

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

    操作如下:

    Java代码示例如下: 

     1 import redis.clients.jedis.Jedis;
     2 
     3 /**
     4  * redis中对于字符串类型的: getrange操作示例
     5  */
     6 public class String_getrange_operation {
     7     public static void main(String[] args) {
     8         Jedis jedis = new Jedis("127.0.0.1",6379);
     9         /**
    10          * 示例1: 相当于执行 getrange k1 start end
    11          */
    12         String k1 = jedis.getrange("k1", 0, -1);
    13         System.out.println("k1 = " + k1);
    14 
    15         String k11 = jedis.getrange("k1", 1, 5);
    16         System.out.println("k11 = " + k11);
    17 
    18     }
    19 }

    1.7、strlen:返回键值的长度,格式是:strlen key值 

    操作如下:

    Java代码示例如下:

     1 import redis.clients.jedis.Jedis;
     2 
     3 /**
     4  * redis中对于字符串类型的: strlen操作示例
     5  */
     6 public class String_strlen_operation {
     7     public static void main(String[] args) {
     8         Jedis jedis = new Jedis("127.0.0.1",6379);
     9         /**
    10          * 示例1: 相当于执行 strlen k1
    11          */
    12         Long k1 = jedis.strlen("k1");
    13         System.out.println("k1 = " + k1);
    14     }
    15 }

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

    操作如下:

    Java代码示例如下:

     1 import redis.clients.jedis.Jedis;
     2 
     3 import java.util.List;
     4 
     5 /**
     6  * redis中对于字符串类型的: mget mset 操作示例
     7  */
     8 public class String_mget_mset_operation {
     9     public static void main(String[] args) {
    10         Jedis jedis = new Jedis("127.0.0.1",6379);
    11         /**
    12          * 示例1: 相当于执行 mget k1 k2 k3 k4
    13          */
    14         List<String> mget = jedis.mget("k1", "k2", "k3", "k4");
    15         mget.stream().forEach(System.out::println);
    16 
    17         String mset = jedis.mset("k1", "1", "k2","2","k3","3");
    18         System.out.println("mset = " + mset);
    19 
    20         mget = jedis.mget("k1", "k2", "k3", "k4");
    21         mget.stream().forEach(System.out::println);
    22     }
    23 }

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

    操作如下:

     

    Java代码示例如下:

     1 import redis.clients.jedis.Jedis;
     2 
     3 /**
     4  * redis中对于字符串类型的: bitcount 操作示例
     5  */
     6 public class String_bitcount_operation {
     7 
     8     public static void main(String[] args) {
     9         /**
    10          * 获取字母"a"对应的二进制
    11          */
    12         byte[] bytes = "a".getBytes();
    13         String s = Integer.toBinaryString(bytes[0]);
    14         System.out.println("s = " + s);
    15 
    16         Jedis jedis = new Jedis("127.0.0.1",6379);
    17         /**
    18          * 示例1: 相当于执行 bitcount k1[start end]
    19          */
    20         String set = jedis.set("k1", "a");
    21         Long bitcount = jedis.bitcount("k1");
    22         System.out.println("bitcount = " + bitcount);
    23 
    24         /**
    25          * 因为 k1对应的value是'a'只有一个长度
    26          */
    27         Long bitcount2 = jedis.bitcount("k1", 0, 2);
    28         System.out.println("bitcount2 = " + bitcount2);
    29 
    30     }
    31 }

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

    操作如下:

    getbit key值 offset索引

    字母'a'对于的二进制位"01100001"

    setbit key值 offset索引 值

    因为字母'b'的二进制位"01100010",我们只要把字母"a"的二进制的第7位设置为0、第六位设置为1,就可以等到一个字母"b"了。

    Java代码示例如下 

     1 import redis.clients.jedis.Jedis;
     2 
     3 /**
     4  * redis中对于字符串类型的: getbit、setbit 操作示例
     5  */
     6 public class String_getbit_setbit_operation {
     7     public static void main(String[] args) {
     8         /**
     9          * 获取字母"a"对应的二进制
    10          */
    11         byte[] bytes = "a".getBytes();
    12         String s = Integer.toBinaryString(bytes[0]);
    13         System.out.println("s = " + s);
    14 
    15         Jedis jedis = new Jedis("127.0.0.1",6379);
    16         /**
    17          * 示例1: 相当于执行 getbit k1 1
    18          */
    19         String set = jedis.set("k1", "a");
    20         Boolean getbit = jedis.getbit("k1", 1);
    21         System.out.println("getbit = " + getbit);
    22 
    23         /**
    24          * 示例2:相当于执行 setbit k1 7 0 / setbit k1 6 1
    25          */
    26         jedis.setbit("k1",7l,"0");
    27         jedis.setbit("k1",6l,"1");
    28         String k1 = jedis.get("k1");
    29         System.out.println("k1 = " + k1);
    30     }
    31 }

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

    操作如下:

    "a" --- 01100001

    "b" --- 01100010

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

    操作如下:

    Java代码示例如下: 

     1 import redis.clients.jedis.Jedis;
     2 
     3 /**
     4  * redis中对于字符串类型的: getset 操作示例
     5  */
     6 public class String_getset_operation {
     7     public static void main(String[] args) {
     8         Jedis jedis = new Jedis("127.0.0.1",6379);
     9         /**
    10          * 示例1: 相当于执行 getSet k1 v1
    11          */
    12         String getSet = jedis.getSet("k1", "111");
    13         System.out.println("getSet = " + getSet);
    14 
    15         System.out.println("======================");
    16     }
    17 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    聚集索引和非聚集索引的区别
    转 怎样保存 Checkbox 值
    (转载)多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(中)
    a=10,b=15,在不用第三方变量的前提下,把a,b的值互换
    (转载)C#多线程编程之:同步事件和等待句柄
    (转载)多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(上)
    Hello World
    (转)Windows Server 2003中的w3wp.exe进程大量占用cpu资源的各种问题解决方法
    (转,大家共勉) 30岁前男人需要完成的事
    max与top的效率
  • 原文地址:https://www.cnblogs.com/xinhuaxuan/p/9250680.html
Copyright © 2011-2022 走看看