一 介绍
Redis key是二进制安全的,这意味着可以用任何二进制序列作为key,从形如“foo”的简单字符串到一个JPEG文件的内容都可以。空字符串也是有效的key。
二 key取值原则
1 键不需要太长,消耗内存,且在数据查找这类键的计算成本较高。
2 键不宜过短,可读性较差。
三 String
1 介绍
字符串是一种最基本的Redis值类型。Redis字符串是二进制安全的,这意味着一个Redis字符串能包含任意类型的数据。
例如:一张JPEG格式的图片或者一个序列化的Ruby对象。
2 一个字符串类型的值最多能存储512M字节的内容。
四 命令帮助
登录客户端后,获取帮助用下面的命令:
Help
Help <tab>
Help set
Help @string
127.0.0.1:6379> key * (error) ERR unknown command 'key' 127.0.0.1:6379> KEYS * 1) "nx-1" 2) "cakin::email" 3) "ex-key" 4) "nx-3" 5) "msg" 6) "myphone" 7) "getset-str" 8) "nx-2" 9) "newkey" 10) "num" 11) "cakin:qq" 127.0.0.1:6379> FLUSHDB OK 127.0.0.1:6379> keys * (empty list or set)
七 关于过期
1 简介
Redis中可以给key设置一个生存时间(秒或毫秒),当达到这个时长后,这些键值将会被自动删除。
2 设置多少秒或者毫秒后过期
EXPIRE key seconds
PEXPIRE key milliseconds
3 设置在指定Unix时间戳过期
EXPIREAT key timestamp
PEXPIREAT key milliseconds-timestamp
4 删除过期
PERSIST key
八 关于TTL
1 介绍
Time TO LIVE,可以的剩余生存时间
2 查看剩余生存时间
TTL key
PTTL key
key存在,但没有设置TTL,返回1
key存在,但还在生存期内,返回剩余的秒或者毫秒
key曾经存在,但已经消亡,返回-2(2.8版本之前返回-1)
3 实战
127.0.0.1:6379> set msg hello ex 30 OK 127.0.0.1:6379> ttl msg (integer) 25 127.0.0.1:6379> ttl msg (integer) 17 127.0.0.1:6379> ttl msg (integer) 8 127.0.0.1:6379> ttl msg (integer) -2
九 关于KEYS命令
1 简介
查找键
KEYS pattern
2 pattern取值
*:表示任意长度
?:任意一个字符
[]:字符集合,可以表示集合中的任意一个
十 键的相关操作
1 键类型
TYPE key
2 键是否存在
EXISTS key [key ...]
3 键重命名
RENAME key newkey
RENAMENX key newkey
4 键删除
DEL key [key ...]
5 实战
127.0.0.1:6379> set str hello OK 127.0.0.1:6379> type str string 127.0.0.1:6379> EXISTS str (integer) 1 127.0.0.1:6379> RENAME str newstr OK 127.0.0.1:6379> KEYS * 1) "msg" 2) "newstr"