这是我参与8月更文挑战的第30天,活动详情查看:8月更文挑战
通用命令
查看所有的key
keys *
根据通配符查找value
keys [pattern]
keys 命令一般不在生产环境中使用
计算key的总数
dbsize
判断key是否存在 存在返回1 不存在返回0
exists key
删除指定的key-value
del key
给key设置过期时间
expire key sconds
查看key剩余的过期时间
ttl key
-
返回值 >=0 是剩余过期时间
-
返回值 = -1 表示key存在,没有过期时间
-
返回值 = -2 表示key已经过期
去掉key的过期时间
persist key
返回key的类型
type key
String、hash、list、set、zset
字符串:
结构和命令
键值结构:key - value,value 本质上是二进制,不能大于512M
命令
获取key对应的value O(1)
get key
设置key-value O(1)
set key value
删除key-value O(1)
del key
整型
key自增1,如果key不存在,自增后get(key) = 1 O(1)
incr key
key自减1,如果key不存在,自减后get(key) = -1 O(1)
decr key
key自增k,如果key不存在,自增后get(key) = k O(1)
incrby key k
key自减k,如果key不存在,自减后get(key) = -k O(1)
decrby key k
不管key是否存在都进行设置 O(1)
set key value
key不存在,才设置 O(1)
setnx key value
key存在,才设置 O(1)
set key value xx
批量获取key,原子操作 O(n)
mget key1 key2 key3...
批量设置key-value O(n)
mset key1 value1 key2 value2 key3 value3 ...
n次get = n次网络时间 + n次命令时间
1次mget = 1次网络时间 + n次命令时间
设置新的值,并返回旧的value O(1)
getset key newvalue
将value追加到旧的value O(1)
append key value
返回字符串长度(注意中文,一个中文两个字节) O(1)
strlen key
增加key对应的值3.5 O(1)
incrbyfloat key 3.5
获取字符串指定下标所有的值 O(1)
getrange key start end
设置指定下标所有对应的值 O(1)
setrange key index value
哈希
哈希键值结构:
key field value
特点:
field 不能相同,value可以相同
获取hash key对应的field的value O(1)
hget key field
设置hash key对应的field的value O(1)
hset key field value
删除hash key对应的field的value O(1)
hdel key field
判断hash key是否有field O(1)
hexists key field
获取hash key field的数量 O(1)
hlen key
批量获取hash key的一批field对应的值 O(n)
hmget key field1 field2 ... fieldN
批量设置hash key的一批field value O(n)
hmset key field1 value1 field2 value2 ... fieldN valueN
返回hash key对应所有的field和value O(n)
hgetall key
返回hash key对应所有field的value O(n)
hvals key
返回hash key对应所有field O(n)
hkeys key
设置hash key对应的field的value(如field已经存在,则失败) O(1)
hsetnx key field value
hash key对应的field的value自增intCounter O(1)
hincrby key field intCounter
hincrby 浮点数版本 O(1)
hincrbyfloat key field floatCounter