【Redis数据库】命令学习笔记——键(key)(20个超全字典版)
安装完redis和redis-desktop-manager后,开始学习命令啦!本篇基于redis 4.0.11版本,从对键(key)开始挖坑!
准备工作,使用db1(默认db0,由于之前练习用db0,这里为避免混淆)。再创建一些数据如下:
切换成db1
select 1
创建键值为runoobkey redis的数据
SET runoobkey redis
获取键为runoobkey的值
get runoobkey
详细介绍:
序号 | 命令 | 描述 | 实例 | 返回 |
1 |
DEL key | 该命令用于在 key 存在时删除 key | 删除键runoobkey:del runoobkey |
成功:(integer) 1 失败:(integer) 0 |
2 | DUMP key | 序列化给定 key ,并返回被序列化的值 | 将键为runoobkey序列化:dump runoobkey | "\x00\x05redis\b\x00|}ENK67\x19" |
3 | EXISTS key | 检查给定 key 是否存在 | 检查是否存在runoobkey:EXISTS runoobkey |
存在:(integer) 1 不存在:(integer) 0 |
4 | EXPIRE key seconds | 为给定 key 设置过期时间 | 键为name设置过期时间为100秒:EXPIRE name 100 |
成功:(integer) 1 失败:(integer) 0 |
5 | EXPIREAT key timestamp | EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp) | 键为name设置过期时间为2019年1月1日零点:EXPIREAT name 1546272000 |
成功:(integer) 1 失败:(integer) 0 |
6 | PEXPIRE key milliseconds | 设置 key 的过期时间以毫秒计 | 键为age设置过期时间为1000毫秒:PEXPIRE age 1000 |
成功:(integer) 1 失败:(integer) 0 |
7 | PEXPIREAT key milliseconds-timestamp | 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计 | 键为sex设置过期时间为2019年1月1日零点:EXPIREAT sex 1546272000000 |
成功:(integer) 1 失败:(integer) 0 |
8 | KEYS pattern | 查找所有符合给定模式( pattern)的 key | 键为a打头的:KEYS a* | 1) "apples" 2) "age" |
9 | MOVE key db | 将当前数据库的 key 移动到给定的数据库 db 当中 | 键为age移到数据库3中:move age 3 |
成功:(integer) 1 失败:(integer) 0 |
10 | PERSIST key | 移除 key 的过期时间,key 将持久保持 | 移除键为sex过期时间:PERSIST sex |
成功:(integer) 1 失败:(integer) 0 |
11 | PTTL key | 以毫秒为单位返回 key 的剩余的过期时间 | 键为apples的过期时间:PTTL apples | (integer) 10996644158 |
12 | TTL key | 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live) | 键为apples的过期时间:TTL apples | (integer) 10996577 |
13 | RANDOMKEY | 从当前数据库中随机返回一个 key | RANDOMKEY | "cats" |
14 | RENAME key newkey | 修改 key 的名称 | 键为cats改为cat:RENAME cats cat | OK |
15 | RENAMENX key newkey | 仅当 newkey 不存在时,将 key 改名为 newkey | 键为cat改为apples:RENAMENX cat apples |
成功:(integer) 1 失败:(integer) 0 |
16 | TYPE key | 返回 key 所储存的值的类型 | 键为name值得类型:type name |
字符:string 哈希:hash 列表:list 集合:set 有序集合:zset |
17 | OBJECT [REFCOUNT|IDLETIME| ENCODING][arguments [arguments]] | OBJECT REFCOUNT <key> 返回给定 key 引用所储存的值的次数。此命令主要用于除错。 OBJECT ENCODING <key> 返回给定 key 锁储存的值所使用的内部表示(representation)。 OBJECT IDLETIME <key> 返回给定 key 自储存以来的空闲时间(idle, 没有被读取也没有被写入),以秒为单位。 |
查看键为signtime的引用次数:OBJECT REFCOUNT signtime; 空闲时间:OBJECT IDLETIME apples; 编码方式:OBJECT ENCODING apples |
(integer) 1; (integer) 13; "int" |
18 | RESTORE key ttl serialized-value [REPLACE] |
反序列化给定的序列化值,并将它和给定的 key 关联。 |
RESTORE greetingcp 0 "\x00\x15hello, dumping world!\b\x00j`\xde\xbd\x84>wu" |
OK; get greetingcp |
19 | SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination] |
返回或保存给定列表、集合、有序集合 key 中经过排序的元素。 |
键为score的值倒序排序并存到sorted-numbers中:sort scores desc STORE sorted-numbers |
(integer) 2 |
20 | SCAN cursor [MATCH pattern] [COUNT count] | SCAN 命令及其相关的 SSCAN 命令、 HSCAN 命令和 ZSCAN 命令都用于增量地迭代,直到命令返回游标 0,我们称这个过程为一次完整遍历 |
开始新的迭代,匹配*i*,返回两个: scan 0 match *i* count 2 |
1) "12" 2) 1) "greeting" |
序号为17命令实例(get操作后明显看到空闲时长小很多!)
127.0.0.1:6379[1]> OBJECT idletime apples
(integer) 1229
127.0.0.1:6379[1]> get apples
"7"
127.0.0.1:6379[1]> OBJECT idletime apples
(integer) 7
127.0.0.1:6379[1]> OBJECT idletime apples
(integer) 13
序号为18命令实例
127.0.0.1:6379[1]> SET greeting "hello, dumping world!"
OK
127.0.0.1:6379[1]> DUMP greeting
"\x00\x15hello, dumping world!\b\x00j`\xde\xbd\x84>wu"127.0.0.1:6379[1]> RESTORE greetingcp 0 "\x00\x15hello, dumping world!\b\x00j`\xde\xbd\x84>wu"
OK
127.0.0.1:6379[1]> get greetingcp
"hello, dumping world!"
网上有很多参考文档,推荐:http://redisdoc.com/ (是 Redis Command Reference 和 Redis Documentation 的中文翻译版,包括Redis 命令的具体使用方法,Redis 的事务、持久化、复制、Sentinel、集群等功能,超详细!)