博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis之(三)管理命令
阅读量:5292 次
发布时间:2019-06-14

本文共 3890 字,大约阅读时间需要 12 分钟。

4.1键管理

通过学习五种数据类型的操作命令,可以发现,Redis对每种数据的处理之前,都要先指定该数据的key,然后再指定对该数据进行何种操作。

Redis中的key有点类似于Java中的变量名,起到提纲挈领的作用,对某个数据的处理都是以key作为切入点。所以Redis把key作为单独的处理对象抽象出了一套操作命令。key可以想象成一个指向实际数据的指针,对key的操作会直接影响它所指向的数据的状态。

 

比如,我们想删除某个数据,就可以通过删除它的key来达到目的:

127.0.0.1:6379> SET name chenlongfei

OK

127.0.0.1:6379> GET name

"chenlongfei"

127.0.0.1:6379> DEL name

(integer) 1

127.0.0.1:6379> GET name

(nil)

 

想要查看某个数据的类型:

127.0.0.1:6379> SADD direction east west south north

(integer) 4

127.0.0.1:6379> TYPE direction

set

想要更改某个数据的key的名字:

127.0.0.1:6379> RENAME direction direct

OK

127.0.0.1:6379> SMEMBERS direct

1) "north"

2) "west"

3) "south"

4) "east"

 

命令格式

说明

DEL key [key ...]

此命令删除键,如果存在

EXISTS key

此命令检查该键是否存在

EXPIRE key seconds

指定键的过期时间(秒)

PEXPIRE key milliseconds

指定键的过期时间(毫秒)

EXPIREAT key timestamp

以Unix时间戳格式(秒)指定键的过期时间

PEXPIREAT key milliseconds-timestamp

以Unix时间戳格式(毫秒)指定键的过期时间

KEYS pattern

查找与指定模式匹配的所有键。pattern支持glob-style的通配符格式,如*表示任意一个或多个字符,?表示任意字符,[abc]表示方括号中任意一个字母

RENAME key newkey

更改键的名称

RENAMENX key newkey

重命名键,如果新的键不存在

TYPE key

返回存储在键的数据类型的值

RANDOMKEY

从Redis返回随机键的名字

PERSIST key

如果Key存在过期时间,该命令会将其过期时间消除,使该Key不再有超时,而是可以持久化存储

TTL key

Time To Live)返回该键的剩余存活时间(秒),如果该键不存在或没有超时设置,则返回-1

PTTL key

返回该键的剩余存活时间(毫秒)

4.2发布订阅管理

发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。

Redis作为一个server,在订阅者和发布者之间起到了消息路由的功能。订阅者可以通过subscribepsubscribe命令向Redis server订阅自己感兴趣的消息类型,Redis将消息类型称为通道(channel)。当发布者通过publish命令向Redis server发送特定类型的消息时。订阅该消息类型的全部client都会收到此消息。这里消息的传递是多对多的。一个client可以订阅多个 channel,也可以向多个channel发送消息。

例如,一个客户端订阅了“CCTV-5”频道的消息:

127.0.0.1:6379> SUBSCRIBE CCTV-5

Reading messages... (press Ctrl-C to quit)

1) "subscribe"

2) "CCTV-5"

3) (integer) 1

 

另一个客户端在“CCTV-5”发布了两条消息:

127.0.0.1:6379> PUBLISH CCTV-5 "Kobe will say good bye to NBA in 2016.4.4"

(integer) 1

127.0.0.1:6379>PUBLISH CCTV-5 "Cavaliers Cleveland won the championship"

(integer) 1

 

第一个客户端就会收到这两条消息:

127.0.0.1:6379> SUBSCRIBE CCTV-5

Reading messages... (press Ctrl-C to quit)

1) "subscribe"

2) "CCTV-5"

3) (integer) 1

1)"message"

2)"CCTV-5"

3)"Kobe will say good bye to NBA in 2016.4.4"

1)"message"

2)"CCTV-5"

3) "CavaliersCleveland won the championship"

 

命令格式

说明

PUBLISH channel message

将消息message发布到频道channel

SUBSCRIBE channel [channel ...]

订阅一个或多个频道上的消息

UNSUBSCRIBE [channel [channel ...]]

退订频道上的消息

PSUBSCRIBE pattern [pattern ...]

Pattern Subscribe)以模式匹配的方式订阅多个频道

PUNSUBSCRIBE [pattern [pattern ...]]

以模式匹配的方式退订频道消息

PUBSUB subcommand [argument [argument ...]]

查看活动的频道信息。比如“PUBSUB channels”,会列出所有活动的频道名称,所谓“活动的”,是指至少有一个订阅者的频道

4.3 连接管理

默认情况下,Redis没有密码要求,意味着无需通过密码验证就可以连接到Redis 服务。

可以通过更改配置文件中的“requirepass”配置项,来设置密码。

winner@winnerdeMacBook-Pro:~$ Redis-cli

127.0.0.1:6379> CONFIG get requirepass

1) "requirepass"

2) "" --默认没有密码

127.0.0.1:6379> CONFIG set requirepass"chenlongfei"  --设置密码

OK

127.0.0.1:6379> QUIT  --退出重新连接

winner@winnerdeMacBook-Pro:~$ Redis-cli

127.0.0.1:6379> SET name "clf"

(error) NOAUTH Authentication required.  –提示没权限

127.0.0.1:6379> AUTH chenlongfei  --验证密码

OK

127.0.0.1:6379> SET name "clf"  --之后才能进行操作

OK

127.0.0.1:6379> GET name

"clf"

命令格式

说明

AUTH password

验证密码

ECHO message

打印字符串

PING

检验连接状况,正常情况下服务器会返回“PONG”。

QUIT

关闭当前连接

SELECT index

切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。默认使用 0 号数据库。

4.4 服务器管理

Redis定义了一组与服务器相关的命令,用于查询服务器信息,如当前时间、客户端连接数量,以及修改配置文件、手动触发某些操作等。

命令格式

说明

INFO

打印服务器的详细信息

CONFIG GETname

获取配置项name的内容

CONFIG SETname value

将配置项name的值设为value,无需重启

BGSAVE

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

SAVE

SAVE 命令执行一个同步操作,以RDB文件的方式保存所有数据的快照。很少在生产环境直接使用SAVE 命令,因为它会阻塞所有的客户端的请求,可以使用BGSAVE 命令代替

FLUSHALL

删除所有数据库的所有key

FLUSHDB

删除当前数据库的所有key

SHUTDOWN [NOSAVE] [SAVE]

停止所有客户端,如果配置了save 策略 则执行一个阻塞的save命令,如果开启了AOF,则刷新aof文件,关闭Redis服务进程(Redis-server)。

如果配置了持久化策略,那么这个命令将能够保证在关闭Redis服务进程的时候数据不会丢失。如果仅仅在客户端执行SAVE 命令,然后 执行QUIT 命令,那么数据的完整性将不会被保证,因为其他客户端可能在执行这两个命令的期间修改数据库的数据。

转载于:https://www.cnblogs.com/duadu/p/6335758.html

你可能感兴趣的文章
登录服务器,首先用到的5个命令
查看>>
多米诺骨牌
查看>>
区间DP 等腰三角形
查看>>
mysql 存储引擎对索引的支持
查看>>
Linq 学习(1) Group & Join--网摘
查看>>
asp.net 调用前台JS调用后台,后台掉前台JS
查看>>
【转】iOS 宏(define)与常量(const)的正确使用-- 不错
查看>>
【转】iOS开发UI篇—iPad和iPhone开发的比较
查看>>
【转】Android底层库和程序
查看>>
OnContextMenu事件(转)
查看>>
Comparación para 2019 Nueva Lonsdor K518S y K518ISE
查看>>
论文笔记——MobileNets(Efficient Convolutional Neural Networks for Mobile Vision Applications)
查看>>
从今天开始
查看>>
Attribute(特性)与AOP
查看>>
[翻译] CBStoreHouseTransition
查看>>
第三次作业
查看>>
Codeforces 962 /2错误 相间位置排列 堆模拟 X轴距离最小值 前向星点双连通分量求只存在在一个简单环中的边...
查看>>
Matrix快速幂 模板
查看>>
laravel command调用方法命令
查看>>
20162302 - 20162319 结对编程项目-四则运算(第一周)
查看>>