Redis常用的一些基本命令

以下罗列Redis常用的一些基本命令(按照个人理解分类),常见的五种数据类型(Sting, List, Set, SortedSet, Hash)操作命令不再罗列,具体使用参考官方文档。

Connection(连接)

  • Auth 命令用于检测给定的密码和配置文件中的密码是否相符(需要先使用 Config set requirepass "XXXXXX" 命令设置密码)
  • Client List 命令用于返回所有连接到服务器的客户端信息和统计数据
  • Client Kill 命令关闭地址为 ip:port 的客户端
  • Client SetName 命令用于指定当前连接的名称
  • Client GetName 命令用于返回 Client SetName 命令为连接设置的名字。 新创建的连接默认是没有名字的, 对于没有名字的连接, 该命令返回空白

Key(键)

  • Keys 命令查找所有符合给定模式的 key(如Keys *列举当前数据库中所有 key)
  • Type 命令用于返回 key 所储存的值的类型
  • Exists 命令检查给定 key 是否存在,存在返回 1 ,否则返回 0
  • Del 命令删除给定的一个或多个 key ,不存在的 key 会被忽略
  • Unlink 该命令是 DEL 命令的异步版本, 它可以将删除指定键的操作放在后台线程里面执行, 从而尽可能地避免服务器阻塞(Redis 4.0 新增)
  • Rename 命令将重命名现有 key 为新的 key
  • Expire 命令用于设置 key 的过期时间,key 过期后将自动删除
  • Persist 命令用于移除给定 key 的过期时间,使得 key 永不过期
  • TTL 命令以秒为单位返回 key 的剩余过期时间(当 key不存在时,返回-2, 当key存在但没有设置剩余生存时间时,返回-1)
  • Object 命令允许从内部察看给定 key 的 Redis 对象
  • Dump 命令序列化给定 key 并返回被序列化的值(使用 Restore 命令可以将这个值反序列化为 Redis 键)
  • Restore 命令反序列化给定的序列化值,并将它和给定的 key 关联
  • Move 命令将当前数据库的 key 移动到给定的数据库 db 当中
  • Migrate 命令将 key 原子性地从当前实例传送到目标实例的指定数据库上,一旦传送成功, key 保证会出现在目标实例上,而当前实例上的 key 会被删除

Database(数据库)

  • Select 命令用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值(cluster 部署的情况下,只有一个序列号为 0 的数据库)
  • Dbsize 命令用于返回当前数据库的 key 的数量
  • Flushdb 命令用于清空当前数据库中的所有 key
  • Flushall 命令用于清空整个 Redis 服务器的数据(删除所有数据库的所有 key)
  • SwapDB 命令可以对指定的两个数据库进行互换(Redis 4.0 新增)
  • Save 命令执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘
  • Bgsave 命令用于在后台异步保存当前数据库的数据到磁盘

Command(命令行)

  • Command 命令用于返回所有的Redis命令的详细信息,以数组形式展示
  • Command Count 命令用于统计 redis 命令的个数

Configuration(配置)

  • Config Get 命令用于获取 redis 服务的配置参数
    • 客户端最大连接数 maxclients 默认值是 10000
    • 在服务启动时设置最大连接数为 1000 --> redis-server --maxclients 1000
  • Config Set 命令可以对服务器的当前配置进行修改, 而修改后的配置可能和 redis.conf 文件中所描述的配置不一样
  • Config ReWrite 命令的作用就是通过尽可能少的修改, 将服务器当前所使用的配置记录到 redis.conf 文件中
  • Config ResetStat 命令重置 Info 命令中的某些统计数据(Server, CPU, Memory, Stats)

Debug & Monitoring(调试及监控)

  • Debug Object 命令是一个调试命令,它不应被客户端所使用
  • Debug Segfault 命令执行一个非法的内存访问从而让 Redis 崩溃,仅在开发时用于 BUG 调试
  • Monitor 命令用于实时打印出 Redis 服务器接收到的命令,调试用

Server(服务器)

  • Info 命令以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值
  • Role 命令查看主从实例所属的角色,角色有master, slave, sentinel
  • SlowLog 命令用来记录查询执行时间的日志系统
  • Shutdown 命令使服务器和客户端的连接断开,客户端自动退出。如果持久化被打开, 该命令会保证服务器正常关闭而不丢失任何数据
  • BgRewriteAOF 命令执行一个 AOF 文件重写操作, 重写会创建一个当前 AOF 文件的体积优化版本。
    • 重写操作只会在没有其他持久化工作在后台执行时被触发
    • 即使 BgRewriteAOF 执行失败,也不会有任何数据丢失,因为旧的 AOF 文件在 BgRewriteAOF 成功之前不会被修改
    • 从 Redis 2.4 开始, AOF 重写由 Redis 自行触发, BgRewriteAOF 仅仅用于手动触发重写操作
  • SlaveOf 命令用于在 Redis 运行时动态地修改复制(replication)功能的行为。
    • 通过执行 SlaveOf 命令,可以将当前服务器转变为指定服务器的从属服务器(slave server)。
    • 如果当前服务器已经是某个主服务器(master server)的从属服务器,那么执行该命令将使当前服务器停止对旧主服务器的同步,丢弃旧数据集,转而开始对新主服务器进行同步。
    • 另外,对一个从属服务器执行命令 SlaveOf no one 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。利用这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行。
  • Sync 命令用于复制功能(replication)的内部命令
  • Memory 命令可以用于视察内存使用情况,并进行相应的内存管理操作(Redis 4.0 新增, 可用Memory help查看具体用法)

Other topic(其他主题)

  • 事务: MULTI 标记一个事务块的开始;Discard 取消事务,放弃执行事务块内的所有命令;EXEC 执行所有事务块内的命令;Watch 监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。
  • 模块系统: Redis 4.0 发生的最大变化就是加入了模块系统, 这个系统可以让用户通过自己编写的代码来扩展和实现 Redis 本身并不具备的功能。
  • 流:Redis Stream 是 Redis 5.0 新增加的数据结构,主要用于消息队列(MQ,Message Queue)。Redis 本身是有一个 Redis 发布订阅 (pub/sub) 来实现消息队列的功能,但它有个缺点就是消息无法持久化,如果出现网络断开、Redis 宕机等,消息就会被丢弃。简单来说发布订阅 (pub/sub) 可以分发消息,但无法记录历史消息。而 Redis Stream 提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并且能记住每一个客户端的访问位置,还能保证消息不丢失。
  • Redis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 Eval
  • Redis 提供了4种不同级别的持久化方式:RDB (Redis Database), AOF (Append Only File), AOF & RDB, No persistence
  • redis-benchmark 命令用于做性能测试
  • Redis 有两种类型分区:范围分区 和 哈希分区
posted @ 2021-04-10 20:26  天琊蓝  阅读(949)  评论(1编辑  收藏  举报