String类型操作命令及api使用
在redis中对String类型的操作
一:String操作命令
- get、set、del:获取key的值、设置key的值、删除key的值
- incr、decr:递增和递减整数值,格式是:incr key值/decr key值
- incrby、decrby:递增和递减整数值,可指定增减的数值,格式是:incrby key值 正负数/decrby key值 正负数
- incrbyfloat:递增和递减浮点数,格式是:incrbyfloat key值 正负数值
- append:在尾部追加值,格式是:append key值 追加的值
- getrange、setrange:获取指定索引范围内的值,格式是:getrange key值 起始索引 结束索引
- strlen:返回键值的长度,格式是:strlen key值
- mget、mset:同时获取多个键的值、同时设置多个键的值,格式为:mget 多个key值、mset key值 value(key和value可以是多对)
- bitcount:获取范围内为1的二进制位数,格式是:bitcount key值[start end] (ps: 这里的start end 是指value的值的起始位置)
- getbit、setbit:获取指定位置的二进制位的值、设置指定位置的二进制位的值,格式是:getbit key值 offset索引、setbit key值 offset索引 值
- bitop:对多个二进制位进行位操作,格式是:bitop 操作 目的key key值1 key值2,操作有:and、or、xor、not。 (key值可以有多个)
- 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);