(一) Redis 数据类型之字符串String

判断key是否存在,返回true / false, 1/0

1
exists key

查看剩余存活时间

※ 获取不存在的key,返回-1

1
ttl key

查看过期key情况

※ redis作为一个内存型的数据库,我们需要对过期key保持关注,从info keyspace中可以看出有多少key没有设置过期时间

1
2
3
info keyspace

eg: db0:keys=10000,expires=3,avg_ttl=583699

set

set key value [ex seconds] [px milliseconds] [nx|xx]

  • ex : 过期 (s)
  • px: 过期 (ms)
  • nx: 不存在则创建
  • xx: 存在则覆盖创建
1
2
3
4
5
6
7
8
9
10
11
12
set key value

set key value ex 10
或者写法为: setex key 10 value

set key value px 1000
或者写法为: psetex key 1000 value

set key value nx
或者写法为: setnx key value

set key value xx

mset

mset, msetnx 批量创建

mset key1 value1 [key2 value2…] #批量创建kv,已存在的会被更新

msetnx key1 value1 [key2 value2…] #批量创建kv,所有key不存在才会创建

1
2
3
4
5
6
127.0.0.1:6379> mset k1 a k2 b k3 c
OK
127.0.0.1:6379> mget k1 k2 k3
1) "a"
2) "b"
3) "c"

del

del key1 [key2 key3…]

1
2
3
4
5
6
7
8
9
10
127.0.0.1:6379> del k1 k2 k3
(integer) 3
127.0.0.1:6379> del name_xx
(integer) 1
127.0.0.1:6379> mget k1 k2 k3 name_xx name_nx
1) (nil)
2) (nil)
3) (nil)
4) (nil)
5) "dick"

getset

getset key new_value

等同于get+set,执行此命令返回get的结果,然后将该key更新为新的value,下次再get的时候查到的就是新的value。

setrange

setrange key offeset value

对指定下标的字符串进行更新,下标从0开始算起。

keys

keys *

查看所有key

get

get key

使用get获得指定key的value

mget

mget key1 [key2 key3…]

使用mget批量获得指定keys的values

getrange

getrange key start end

从字符串的指定开始结束下标截取字符串返回,下标从0开始算起。

incr

incr key

对指定的key的value值 + 1, 若不存在,初始值为0,incr后为1。字符串无法转换会报错。

decr

decr key

对指定的key的value值 - 1, 若不存在,初始值为0,incr后为-1。字符串无法转换会报错。

incrby

incrby key

增加指定步长,如果key不存在,初始值为0,incrby后为步长。不能转换会报错。

decrby

decrby key 3

增加指定步长,如果key不存在,初始值为0,incrby后为步长的负数。不能转换会报错。

append

append key valu

追加字符串

strlen

strlen key

返回字符串的长度

incrbyfloat

incrbyfloat key 2.5

支持浮点传参