Redis 发布订阅

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

Redis 客户端可以订阅任意数量的频道。

下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:

redis pub sub 做聊天 redis pubsub命令_Redis

当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:

redis pub sub 做聊天 redis pubsub命令_服务器_02

redis发布、订阅命令:

PSUBSCRIBE pattern [pattern ...]  //订阅一个或多个符合给定模式的频道

PUNSUBSCRIBE [pattern [pattern ...]]  //退订所有给定模式的频道

PUBSUB subcommand [argument [argument ...]]  //查看订阅与发布系统状态

PUBLISH channel message   //将信息发送到指定的频道,注意这里的channel就是上面被订阅的pattern,而message就是发布的消息

SUBSCRIBE channel [channel ...]   //订阅给定的一个或多个频道的信息,它与pubscribe的区别在于,subscribe是精确匹配,而psubscribe是模糊匹配

UNSUBSCRIBE [channel [channel ...]]  //退订给定的频道

 

Redis 连接

Redis 连接命令主要是用于连接 redis 服务。

AUTH password  //验证密码是否正确

ECHO message   //打印字符串

PING     //查看服务是否运行

QUIT     //关闭当前连接

SELECT index    //切换到指定的数据库

 

Redis 服务器

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

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

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

CLIENT KILL [ip:port] [ID client-id]   //关闭客户端连接

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 配置文件进行改写

CONFIG SET parameter value    //修改 redis 配置参数,无需重启

CONFIG RESETSTAT    //重置 INFO 命令中的某些统计数据

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

DEBUG OBJECT key    //获取 key 的调试信息

DEBUG SEGFAULT    //让 Redis 服务崩溃

FLUSHALL     //删除所有数据库的所有key

FLUSHDB      //删除当前数据库的所有key

INFO [section]    //获取 Redis 服务器的各种信息和统计数值

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

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

ROLE     //返回主从实例所属的角色

SAVE     //同步保存数据到硬盘

SHUTDOWN [NOSAVE] [SAVE]     //异步保存数据到硬盘,并关闭服务器

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

SLOWLOG subcommand [argument]     //管理 redis 的慢日志

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

Redis 安全

我们可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让你的 redis 服务更安全。

  • 查看redis是否设置了密码验证:
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) ""
  • 来修改redis链接参数:
127.0.0.1:6379> CONFIG set requirepass "runoob"
OK
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) "runoob"
  • redis密码登录
> auth password