Redis学习笔记(二)字符串进阶
1、增减操作
字符串可以储存字节串、整数、浮点数三种类型的值,如果值无法被解释为十进制的整数或浮点数,那么对此值进行增减操作会返回错误,如果对一个不存在的或者保存了空串的键进行增减操作,Redis将当作0处理。
INCR key_name(键储存的值加1)
DECR key_name(键储存的值减1)
INCRBY key_name num(键储存的值加整数num)
DECRBY key_name num(键储存的值减整数num)
INCRBYFLOAT key_name num (键储存的值加浮点数num)
root@localhost:~# redis-cli 127.0.0.1:6379> set num 1 OK 127.0.0.1:6379> incr num (integer) 2 127.0.0.1:6379> get num "2" 127.0.0.1:6379> decr num (integer) 1 127.0.0.1:6379> incrby num 2 (integer) 3 127.0.0.1:6379> decrby num 1 (integer) 2 127.0.0.1:6379> incrby num -1 (integer) 1 127.0.0.1:6379> decrby num -2 (integer) 3 127.0.0.1:6379> incrbyfloat num 1.2 "5.2" 127.0.0.1:6379> incrby num 1.2 (error) ERR value is not an integer or out of range 127.0.0.1:6379> incrbyfloat num -0.2 "5"
2、处理字符串子串与二进制位
APPEND key_name value(将value追加至值末尾)
GETRANGE key_name index1 index2(获取从index1至index2范围内的子串,包含起止位置)GETRANGE 由SUBSTR改名而来
SETRANGE key_name offset value(将从offset开始的子串设置为value)
GITBIT key_name offset(返回二进制位串中偏移量为offset的值)
SETBIT key_name offset value(将二进制串中偏移量为offset的值设为value)
BITCOUNT key_name [index1 index2](统计二进制串中值为1的二进制位的个数,如果给定了范围,则在范围内统计)
BITOP operation key1 key2 [key3...](对一个或多个二进制串执行与(AND)、或(OR)、异或(XOR)、非(NOT)中的一种操作,结果保存在key1)
root@localhost:~# redis-cli 127.0.0.1:6379> append str hello (integer) 5 127.0.0.1:6379> append str world (integer) 10 127.0.0.1:6379> get str "helloworld" 127.0.0.1:6379> substr str 0 4 "hello" 127.0.0.1:6379> getrange str 5 10 "world" 127.0.0.1:6379> setrange str 5 W (integer) 10 127.0.0.1:6379> get str "helloWorld" 127.0.0.1:6379> setrange str 12 ! (integer) 13 127.0.0.1:6379> get str "helloWorld\x00\x00!"
root@localhost:~# redis-cli 127.0.0.1:6379> set bitstr ? OK 127.0.0.1:6379> getbit bitstr 1 (integer) 0 127.0.0.1:6379> setbit bitstr 1 1 (integer) 0 127.0.0.1:6379> get bitstr "\x7f" 127.0.0.1:6379> bitcount bitstr (integer) 7