二 redis其他特性及服务端常用命令

6 Redis HyperLogLog

什么是基数:

比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 基数估计就是在误差可接受的范围内,快速计算基数。

例子:

PFADD runoobkey "redis"

PFADD runoobkey "mongodb"

PFADD runoobkey "mysql"

PFCOUNT runoobkey

结果:

(integer) 3

 

PFADD key element [element ...] 

添加指定元素到 HyperLogLog 中。

PFCOUNT key [key ...] 

返回给定 HyperLogLog 的基数估算值。

PFMERGE destkey sourcekey [sourcekey ...] 

将多个 HyperLogLog 合并为一个 HyperLogLog

 

7 Redis 发布订阅

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息

例子:

SUBSCRIBE redisChat #订阅消息

PUBLISH redisChat "Redis is a great caching technique" #发布消息

 

PSUBSCRIBE pattern [pattern ...] 

订阅一个或多个符合给定模式的频道。

PUBSUB subcommand [argument [argument ...]] 

查看订阅与发布系统状态。

PUBLISH channel message 

将信息发送到指定的频道。

PUNSUBSCRIBE [pattern [pattern ...]] 

退订所有给定模式的频道。

SUBSCRIBE channel [channel ...] 

订阅给定的一个或多个频道的信息。

UNSUBSCRIBE [channel [channel ...]] 

指退订给定的频道。

 

8 Redis 事务

Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:

  • 批量操作在发送 EXEC 命令前被放入队列缓存。
  • 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
  • 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。

一个事务从开始到执行会经历以下三个阶段:

  • 开始事务。
  • 命令入队。
  • 执行事务。

 

例子:

MULTI

SET book-name "Mastering C++ in 21 days"

GET book-name

SADD tag "C++" "Programming" "Mastering Series"

SMEMBERS tag

EXEC

结果:

1) OK 2) "Mastering C++ in 21 days" 3) (integer) 3 4) 1) "Mastering Series" 2) "C++" 3) "Programming"

 

DISCARD 

取消事务,放弃执行事务块内的所有命令。

EXEC 

执行所有事务块内的命令。

MULTI 

标记一个事务块的开始。

UNWATCH 

取消 WATCH 命令对所有 key 的监视。

WATCH key [key ...] 

监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。

 

 

9 Redis 脚本

Redis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。

 

10 Redis 连接

AUTH password 

验证密码是否正确

ECHO message 

打印字符串

PING 

查看服务是否运行

QUIT 

关闭当前连接

SELECT index 

切换到指定的数据库

 

11 Redis 服务器

Redis 服务器命令主要是用于管理 redis 服务。

 

BGREWRITEAOF 

异步执行一个 AOF(AppendOnly File) 文件重写操作

解释:

Redis Bgrewriteaof 命令用于异步执行一个 AOF(AppendOnly File) 文件重写操作。重写会创建一个当前 AOF 文件的体积优化版本。

即使 Bgrewriteaof 执行失败,也不会有任何数据丢失,因为旧的 AOF 文件在 Bgrewriteaof 成功之前不会被修改。

注意:从 Redis 2.4 开始, AOF 重写由 Redis 自行触发, BGREWRITEAOF 仅仅用于手动触发重写操作。

 

BGSAVE 

在后台异步保存当前数据库的数据到磁盘

解释:

Redis Bgsave 命令用于在后台异步保存当前数据库的数据到磁盘。

BGSAVE 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。

 

CLIENT KILL [ip:port] [ID client-id] 

关闭客户端连接

解释:

Redis Client Kill 命令用于关闭客户端连接。

 

CLIENT LIST 

获取连接到服务器的客户端连接列表

 

CLIENT GETNAME 

获取连接的名称

 

CLIENT PAUSE timeout 

在指定时间内终止运行来自客户端的命令

 

CLIENT SETNAME connection-name 

设置当前连接的名称

 

CLUSTER SLOTS 

获取集群节点的映射数组

 

COMMAND 

获取 Redis 命令详情数组

 

COMMAND COUNT 

获取 Redis 命令总数

 

COMMAND GETKEYS 

获取给定命令的所有键

 

TIME 

返回当前服务器时间

 

COMMAND INFO command-name [command-name ...] 

获取指定 Redis 命令描述的数组

 

CONFIG GET parameter 

获取指定配置参数的值

 

CONFIG REWRITE 

对启动 Redis 服务器时所指定的 redis.conf 配置文件进行改写

解释:

Redis Config rewrite 命令对启动 Redis 服务器时所指定的 redis.conf 配置文件进行改写。

CONFIG SET 命令可以对服务器的当前配置进行修改, 而修改后的配置可能和 redis.conf 文件中所描述的配置不一样, CONFIG REWRITE 的作用就是通过尽可能少的修改, 将服务器当前所使用的配置记录到 redis.conf 文件中。

例子:

CONFIG GET appendonly # appendonly 处于关闭状态

CONFIG SET appendonly yes # 打开 appendonly

CONFIG GET appendonly

CONFIG REWRITE # 将 appendonly 的修改写入到 redis.conf 中

 

CONFIG SET parameter value 

修改 redis 配置参数,无需重启

解释:

Redis Config Set 命令可以动态地调整 Redis 服务器的配置(configuration)而无须重启。

你可以使用它修改配置参数,或者改变 Redis 的持久化(Persistence)方式。

例子:

CONFIG GET slowlog-max-len

CONFIG SET slowlog-max-len 10086

CONFIG GET slowlog-max-len

 

DBSIZE 

返回当前数据库的 key 的数量

 

DEBUG OBJECT key 

获取 key 的调试信息

 

DEBUG SEGFAULT 

让 Redis 服务崩溃

解释:

Redis Debug Segfault 命令执行一个非法的内存访问从而让 Redis 崩溃,仅在开发时用于 BUG 调试。

 

FLUSHALL 

删除所有数据库的所有key

 

FLUSHDB 

删除当前数据库的所有key

 

LASTSAVE 

返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示

 

MONITOR 

实时打印出 Redis 服务器接收到的命令,调试用

解释:

Redis Monitor 命令用于实时打印出 Redis 服务器接收到的命令,调试用。

例子:

redis 127.0.0.1:6379> MONITOR OK 1410855382.370791 [0 127.0.0.1:60581] "info" 1410855404.062722 [0 127.0.0.1:60581] "get" "a"

 

ROLE 

返回主从实例所属的角色

 

SAVE 

同步保存数据到硬盘

 

SHUTDOWN [NOSAVE] [SAVE] 

异步保存数据到硬盘,并关闭服务器

 

SLAVEOF host port 

将当前服务器转变为指定服务器的从属服务器(slave server)

解释:

Redis Slaveof 命令可以将当前服务器转变为指定服务器的从属服务器(slave server)。

如果当前服务器已经是某个主服务器(master server)的从属服务器,那么执行 SLAVEOF host port 将使当前服务器停止对旧主服务器的同步,丢弃旧数据集,转而开始对新主服务器进行同步。

另外,对一个从属服务器执行命令 SLAVEOF NO ONE 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。

利用『 SLAVEOF NO ONE 不会丢弃同步所得数据集』这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行。

 

SLOWLOG subcommand [argument] 

管理 redis 的慢日志

 

SYNC 

用于复制功能(replication)的内部命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值