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);

 

posted @ 2020-04-21 00:04  愿无违  阅读(266)  评论(0编辑  收藏  举报