Redis keys 命令
序号 | 命令 | 描述 |
---|---|---|
1 | DEL key | 该命令用于在 key 存在时删除 key,返回被删除 key 的数量 |
2 | DUMP key | 序列化给定 key ,并返回被序列化的值 |
3 | EXISTS key | 检查给定 key 是否存在,若 key 存在返回 1 ,否则返回 0 |
4 | EXPIRE key seconds | 为给定 key 设置过期时间,设置成功返回 1 |
5 | EXPIREAT key timestamp | EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp),设置成功返回 1 |
6 | PEXPIRE key milliseconds | 设置 key 的过期时间以毫秒计,设置成功,返回 1,key 不存在或设置失败,返回 0 |
7 | PEXPIREAT key milliseconds-timestamp | 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计, 设置成功返回 1 |
8 | KEYS pattern | 查找所有符合给定模式( pattern)的 key,返回符合给定模式的 key 列表 (Array) |
9 | MOVE key db | 将当前数据库的 key 移动到给定的数据库 db 当中,移动成功返回 1 ,失败则返回 0 |
10 | PERSIST key | 移除 key 的过期时间,key 将持久保持,当过期时间移除成功时,返回 1 。 如果 key 不存在或 key 没有设置过期时间,返回 0 |
11 | PTTL key | 以毫秒为单位返回 key 的剩余的过期时间,当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以毫秒为单位,返回 key 的剩余生存时间 |
12 | TTL key | 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live),当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以秒为单位,返回 key 的剩余生存时间 |
13 | RANDOMKEY | 从当前数据库中随机返回一个 key,当数据库不为空时,返回一个 key 。 当数据库为空时,返回 nil (windows 系统返回 null) |
14 | RENAME key newkey | 修改 key 的名称,改名成功时提示 OK ,失败时候返回一个错误。当 OLD_KEY_NAME 和 NEW_KEY_NAME 相同,或者 OLD_KEY_NAME 不存在时,返回一个错误。 当 NEW_KEY_NAME 已经存在时, RENAME 命令将覆盖旧值 |
15 | RENAMENX key newkey | 仅当 newkey 不存在时,将 key 改名为 newkey,修改成功时,返回 1 。 如果 NEW_KEY_NAME 已经存在,返回 0 |
16 | TYPE key | 返回 key 所储存的值的类型 |
Redis 字符串命令
- SET key value 设置指定 key 的值
- GET key 获取指定 key 的值
- GETRANGE key start end 返回 key 中字符串值的子字符
- GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)
shell
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set key001 001
OK
127.0.0.1:6379> get key001
"001"
127.0.0.1:6379> getrange key001 0 1
"00"
127.0.0.1:6379> getset key001 002
"001"
127.0.0.1:6379> get key001
"002"
- SETBIT key offset value 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)
- GETBIT key offset 对 key 所储存的字符串值,获取指定偏移量上的位(bit)
shell
127.0.0.1:6379> keys *
1) "key001"
127.0.0.1:6379> setbit key001 3 1
(integer) 1
127.0.0.1:6379> getbit key001 3
(integer) 1
127.0.0.1:6379> getbit key001 7
(integer) 0
127.0.0.1:6379> getbit key002 3
(integer) 0
- MSET key value [key value …] 同时设置一个或多个 key-value 对
- MSETNX key value [key value …] 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在
- MGET key1 [key2..] 获取所有(一个或多个)给定 key 的值
shell
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> mset key001 001 key002 002
OK
127.0.0.1:6379> keys *
1) "key001"
2) "key002"
127.0.0.1:6379> mget key001 key002
1) "001"
2) "002"
127.0.0.1:6379> msetnx key002 003 key004 004
(integer) 0
127.0.0.1:6379> keys *
1) "key001"
2) "key002"
127.0.0.1:6379> msetnx key003 003 key004 004
(integer) 1
127.0.0.1:6379> keys *
1) "key004"
2) "key003"
3) "key001"
4) "key002"
- SETNX key value 只有在 key 不存在时设置 key 的值
- SETEX key seconds value 将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)
- SETRANGE key offset value 用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始
- STRLEN key 返回 key 所储存的字符串值的长度
- PSETEX key milliseconds value 这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位
shell
redis-S:6379> keys *
(empty list or set)
redis-S:6379> set key001 001
OK
redis-S:6379> keys *
1) "key001"
redis-S:6379> setnx key001 002
(integer) 0
redis-S:6379> get key001
"001"
redis-S:6379> setnx key002 002
(integer) 1
redis-S:6379> keys *
1) "key001"
2) "key002"
redis-S:6379> setex key001 60 001A
OK
redis-S:6379> ttl key001
(integer) 54
redis-S:6379> get key001
"001A"
redis-S:6379> strlen key001
(integer) 4
redis-S:6379> psetex key002 100000 002A
OK
redis-S:6379> ttl key002
(integer) 89
redis-S:6379> get key002
"002A"
redis-S:6379>
- INCR key 将 key 中储存的数字值增一
- INCRBY key increment 将 key 所储存的值加上给定的增量值(increment)
- INCRBYFLOAT key increment 将 key 所储存的值加上给定的浮点增量值(increment)
- DECR key 将 key 中储存的数字值减一
- DECRBY key decrement key 所储存的值减去给定的减量值(decrement)
shel
redis-S:6379> keys *
(empty list or set)
redis-S:6379> set key001 1
OK
redis-S:6379> get key001
"1"
redis-S:6379> incr key001
(integer) 2
redis-S:6379> incrby key001 3
(integer) 5
redis-S:6379> incrbyfloat key001 0.9
"5.9"
redis-S:6379> get key002
"1"
redis-S:6379> decr key002
(integer) 0
redis-S:6379> decrby key002 2
(integer) -2
redis-S:6379>
- APPEND key value 如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾
shell
redis-S:6379> keys *
1) "key001"
2) "key002"
redis-S:6379> get key001
"5.9"
redis-S:6379> append key001 -xxx
(integer) 7
redis-S:6379> get key001
"5.9-xxx"
redis-S:6379> append key003 new-value
(integer) 9
redis-S:6379> keys *
1) "key003"
2) "key001"
3) "key002"
redis-S:6379> get key003
"new-value"
redis-S:6379>