微信登录

数据类型 - key:value - 键值对

数据类型 - key:value - 键值对

key、value健值对简介

Redis的保存方式是key value
最大的value在512MB范围内
可以允许保存:复杂的字符串(例如JSON、XML)、数字 (整数、浮点数)、二进制(图片、音频、视频)

健值对示例

key value
john "A"
Mickey "A"

健值对操作

  1. SET key value [EX seconds] [PX milliseconds] [NX|XX]


如果 key 已经保存了一个值,那么这个操作会直接覆盖原来的值,并且忽略原始类型。
当set命令执行成功之后,之前设置的过期时间都将失效

  1. 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> 以新换旧,设置了新值同时获得旧值。
数据类型 - key:value - 键值对