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 命令,那么数据的完整性将不会被保证,因为其他客户端可能在执行这两个命令的期间修改数据库的数据。

Redis之(三)管理命令的更多相关文章

  1. 第四章· Redis的事务、锁及管理命令

    一.事务介绍 二.Redis乐观锁介绍 三.Redis管理命令 一.事务介绍 Redis的事务与关系型数据库中的事务区别 1)在MySQL中讲过的事务,具有A.C.I.D四个特性 Atomic(原子性 ...

  2. Redis学习笔记(三)redis 的键管理

    Redis 的键管理 一.Redis 数据库管理 Redis 是一个键值对(key-value pair)的数据库服务器,其数据保存在 src/server.h/redisDb 中(网上很多帖子说在 ...

  3. Linux命令(三)——用户、群组管理命令

    一.用户和群组的配置文件 1./etc/passwd文件 该文件存储了所有用户的一些基本属性. /etc/passwd文件中所存信息的具体含义如下: 用户名:x表示必须使用密码登录:uid用户标识符: ...

  4. Redis集群管理

    1.简介 Redis在生产环境中一般是通过集群的方式进行运行,Redis集群包括主从复制集群和数据分片集群两种类型. *主从复制集群提供高可用性,而数据分片集群提供负载均衡. *数据分片集群中能实现主 ...

  5. Redis开发、管理实战

    一.数据类型 String : 字符类型 Hash: 字典类型 List: 列表 Set: 集合 Sorted set: 有序集合 二.全局Key操作 KEYS * 查看KEY支持通配符 DEL 删除 ...

  6. Centos7.2下安装redis&通用键值命令

    Centos7.2下安装redis&通用键值命令 Centos7.2下安装redis 官方网站:https://redis.io/ 1.进入/usr/local/src/目录 cd /usr/ ...

  7. Redis(三)Redis附加功能

    一.慢查询分析 许多存储系统(例如MySql)提供慢查询日志帮助开发和运维人员定位系统存在的慢操作. 所谓慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阈值,就将这条命令的相关信息 ...

  8. redis入门(三)

    目录 redis入门(三) 目录 前言 事务 原理 Lua脚本 安装 脚本命令 集群搭建工具 redis-trib.rb redis官方集群搭建 集群横向扩展 故障转移 redis管理 参考文档 re ...

  9. Redis开发及管理实战

    目录 Redis数据类型 字符串 String string类型操作 字典 Hash 列表 List 集合 Set 有序集合 SortedSet 生产消费模型 Redis事务管理 事务命令 示例 Re ...

  10. 一文掌握Redis的三种集群方案

    在开发测试环境中,我们一般搭建Redis的单实例来应对开发测试需求,但是在生产环境,如果对可用性.可靠性要求较高,则需要引入Redis的集群方案.虽然现在各大云平台有提供缓存服务可以直接使用,但了解一 ...

随机推荐

  1. building a new horizon

    昨天是4月14日,也是我的23岁生日.正好去参加GDG举办的WTM,这次的主题是building a new horizon. 写一下印象深刻的分享者和她们的闪光点. 1.羡辙-从灵感到落地 羡辙是在 ...

  2. java的继承性

    在java继承中,子类也称为派生类,父类也称为基类或者超类,基本语法 :子类 extends 父类{} 实现一个简单的继承类: class Person{ private String name; p ...

  3. [LeetCode] Number Complement 补数

    Given a positive integer, output its complement number. The complement strategy is to flip the bits ...

  4. Ubuntu 16下安装64位谷歌Chrome浏览器

    Ubuntu 16下安装64位谷歌Chrome浏览器 1.将下载源加入到系统的源列表 在终端中,输入以下命令: sudo wget https://repo.fdzh.org/chrome/googl ...

  5. Centos常用命令之:搜索

    在linux中,所有的文件都是以目录树的形式存在的.而每个发行版的文件存放之间又会有些差别. 这时候,如果我们想看某个命令或者文档的时候就必须先通过某种方式找到改文档的所在位置. 在linux中提供了 ...

  6. [HNOI2016]最小公倍数

    题目描述 给定一张N个顶点M条边的无向图(顶点编号为1,2,...,n),每条边上带有权值.所有权值都可以分解成2a∗3b2^a*3^b2a∗3b 的形式. 现在有q个询问,每次询问给定四个参数u.v ...

  7. [AHOI2005]洗牌

    题目描述 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间,小联提议用扑克牌打 ...

  8. SPOJ PHRASES 每个字符串至少出现两次且不重叠的最长子串

    Description You are the King of Byteland. Your agents have just intercepted a batch of encrypted ene ...

  9. SpringCloud学习之eureka集群配置

    一.集群方案及部署思路: 如果是单节点的注册中心,是无法保证系统稳定性的,当然现在项目部署架构不可能是单节点的. 集群节点的部署思路:通过运行多个实例并请求他们相互注册,来完成注册中心的高可用性(结伴 ...

  10. C语言程序第二次作业

    (一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 include int mian() { printf(&q ...