Redis的保存方式是key value
最大的value在512MB范围内
可以允许保存:复杂的字符串(例如JSON、XML)、数字 (整数、浮点数)、二进制(图片、音频、视频)
key | value |
---|---|
john | "A" |
Mickey | "A" |
SET key value [EX seconds] [PX milliseconds] [NX|XX]
增
如果 key 已经保存了一个值,那么这个操作会直接覆盖原来的值,并且忽略原始类型。
当set命令执行成功之后,之前设置的过期时间都将失效
msetnx <key1><value1><key2><value2> .....
增
同时设置一个或多个 key-value 对
当且仅当所有给定 key 都不存在
如果key有值就失败
原子性,有一个失败则都失败
原子性,线程获得数据要时间,有一个时间差
命令 | 解释 | 成功 | 失败 | 空值 |
---|---|---|---|---|
SET key1 value1 | 增 - 设置键key和value | OK | / | / |
SET key1 value1 EX 100 | 增 - EX - 设置键key的过期时间,单位时秒 | OK | / | / |
SET key1 value1 PX 10000 | 增 - PX - 设置键key的过期时间,单位时毫秒 | OK | / | |
SET key1 value1 NX | 增 - NX - 只有键key不存在的时候才会设置key的值 | OK | (nil) | / |
SET key1 value1 XX | 增 - XX - 只有键key存在的时候才会设置key的值 | OK | (nil) | / |
setex k1 time v1 | 增 - 后尾 | / | / | / |
append k1 v1 | 增 - 在后尾增 | 返回数据长度 | / | / |
setnx k1 v1 | 增1个 - 不存在才增 | 没有,返回:1 | 已经有,返回:0 | / |
mset <key1><value1><key2><value2> ….. | 增 - 同时设置一个或多个 key-value对,如果之前有key,新的value替换已经存在的value | OK | 不会失败 | / |
mset <key1><value1><key2><value2> ….. | 增 - 同时设置一个或多个 key-value对,如果之前无key,就像set | OK | 不会失败 | / |
incr k1 | 改 - 加1 - 字符串如果可以变成数值加1变回字符串 | 返回结果 | / | / |
decr k1 | 改 - 减1 - 字符串如果可以变成数值减1变回字符串 | 返回结果 | / | / |
incrby k1 n | 改 - 加n步长 - 字符串如果可以变成数值加1变回字符串 | 返回结果 | / | / |
decrby k1 n | 改 - 减n步长 - 字符串如果可以变成数值减1变回字符串 | 返回结果 | / | / |
get xx | 查 - 键的值 | 返回值 | 报错 - 类型错误不是string | (nil) |
strlen k1 | 查 - 长度 | (integer) 6 | / | / |
mget <key1><key2><key3> ….. | 查 - 同时获取一个或多个 | [data,data](列表形式) |
(nil) | (nil) |
del <key1><key2><key3> ….. | 删 - 同步删除 | 1 | 0(没有这个键) | / |
unlink <key1><key2><key3> ….. | 删 - 异步删除 | 1 | 0(没有这个键) | / |
getrange <key><起始位置><结束位置> | 获得值的范围,类似java中的substring,前包用数字4,后包用数字7 | / | / | / |
setrange <key><起始位置><value> | 用 <value> 覆写<key>所储存的字符串值,从<起始位置>开始(索引从0开始)。 | / | / | / |
命令 | 解释 |
---|---|
setex <key> <过期时间> <value> | 设置键值的同时,设置过期时间,单位秒。 |
EXPIRE keyname 30 | 设置过期时间为 30 秒,返回(integer) 1 |
EXPIRE keyname 30000 | 设置过期时间,返回(integer) 1 |
TTL keyname | 查看剩余生存时间,返回(integer) 23 |
TTL keyname | -1表示永不过期,-2表示已过期 |
getset <key><value> | 以新换旧,设置了新值同时获得旧值。 |