您的位置:首页 > 数据库 > Redis

Redis之(三)管理命令

2016-09-30 11:07 399 查看

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 命令,那么数据的完整性将不会被保证,因为其他客户端可能在执行这两个命令的期间修改数据库的数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息