Redis 根据命令所操作对象的不同,可以分为三大类:对 Redis 进行基础性操作的命令,对 Key 的操作命令,对 Value 的操作命令。
3.1 Redis 基本命令
首先通过 redis-cli 命令进入到 Redis 命令行客户端,然后再运行下面的命令。
3.1.1 心跳命令 ping
键入 ping 命令,会看到 PONG 响应,则说明该客户端与 Redis 的连接是正常的。该命令亦称为心跳命令。
3.1.2 读写键值命令 set/get
set key value 会将指定 key-value 写入到 DB。get key 则会读取指定 key 的 value 值。
关于更多 set 与 get 命令格式,后面会详细学习。
3.1.3 切换数据库 select
默认使用的是 0 号 DB,可以通过 select db 索引来切换 DB。例如,如下命令会切换到DB3
select 3
3.1.4 查看 key 数量 dbsize
3.1.5 删库跑路
flushdb删除当前库所有数据
flushall删除所有库的所有的信息
3.1.6 退出redis自带命令行客户端
exit / quit
3.2 Key操作命令
Redis 中存储的数据整体是一个 Map,其 key 为 String 类型,而 value 则可以是 String、 Hash 表、List、Set 等类型。
3.2.1 Keys
格式:KEYS pattern
功能:查找所有符合给定模式 pattern 的 key,pattern 为正则表达式。
说明:KEYS 的速度非常快,但在一个大的数据库中使用它可能会阻塞当前服务器的服务。所以生产环境中一般不使用该命令,而使用 scan 命令代替。
3.2.2 exists
格式:EXISTS key
功能:检查给定 key 是否存在。
说明:若 key 存在,返回 1 ,否则返回 0 。
3.2.3 del
格式:DEL key [key …]
功能:删除给定的一个或多个 key 。不存在的 key 会被忽略。
说明:返回被删除 key 的数量。
3.2.4 rename
格式:RENAME key newkey
功能:将 key 改名为 newkey。
说明:当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。当 newkey 已经存在时, RENAME 命令将覆盖旧值。改名成功时提示 OK ,失败时候返回一个错误。
3.2.5 move
格式:MOVE key db
功能:将当前数据库的 key 移动到给定的数据库 db 当中。
说明:如果当前数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定 key ,或者 key 不存在于当前数据库,那么 MOVE 没有任何效果。移动成功返回 1 ,失败则返回 0 。
3.2.6 type
格式:TYPE key
功能:返回 key 所储存的值的类型。
说明:返回值有以下六种 none (key 不存在)
- string (字符串)
- list (列表)
- set (集合)
- zset (有序集)
- hash (哈希表)
3.2.7 expire 与 pexpire
格式:EXPIRE key seconds
功能:为给定 key 设置生存时间。当 key 过期时(生存时间为 0),它会被自动删除。 expire 的时间单位为秒,pexpire 的时间单位为毫秒。在 Redis 中,带有生存时间的 key被称为“易失的”(volatile)。
说明:生存时间设置成功返回 1。若 key 不存在时返回 0 。rename 操作不会改变 key的生存时间。
3.2.8 ttl 与 pttl
格式:TTL key
功能:TTL, time to live,返回给定 key 的剩余生存时间。
说明:其返回值存在三种可能:
当 key 不存在时,返回 -2 。
当 key 存在但没有设置剩余生存时间时,返回 -1 。
否则,返回 key 的剩余生存时间。ttl 命令返回的时间单位为秒,而 pttl 命令返回的时间单位为毫秒。
3.2.9 persist
格式:PERSIST key
功能:去除给定 key 的生存时间,将这个 key 从“易失的”转换成“持久的”。
说明:当生存时间移除成功时,返回 1;若 key 不存在或 key 没有设置生存时间,则返回 0。
3.2.10 randomkey (给数据库判空)
格式:RANDOMKEY
功能:从当前数据库中随机返回(不删除)一个 key。
说明:当数据库不为空时,返回一个 key。当数据库为空时,返回 nil。