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. Entry

    Entry(单行输入框)用于获取用户输入的文本. Entry组件仅允许输入一行文本,如果输入过长,那么内容将被滚动,意味着字符串不能被全部看到. from tkinter import * maste ...

  2. java中的链表编写

    通过while循环取出节点内容 class Node{//定义一个节点类,用于保存数据和取得下一个节点 private String data;//节点中数据 private Node next;// ...

  3. [Other] Nuget 构建服务器与常用命令

    公司出于某些原因需要自己在内部网络搭建一个私有的 Nuget 服务器,而且要运行在 Linux服务器上面.如果说 Windows 下搭建的话很简单,直接在项目当中引入 Nuget 的库就 OK,这儿的 ...

  4. LeetCode169:Majority Element(Hash表\位操作未懂)

    题目来源: Given an array of size n, find the majority element. The majority element is the element that ...

  5. 【转】C++ STL快速入门

    转自:https://www.cnblogs.com/skyfsm/p/6934246.html 冠军的试炼 悟已往之不谏,知来者之可追 博客园 首页 新随笔 联系 订阅 管理 随笔 - 60  文章 ...

  6. [LeetCode] Knight Probability in Chessboard 棋盘上骑士的可能性

    On an NxN chessboard, a knight starts at the r-th row and c-th column and attempts to make exactly K ...

  7. python的布尔类型与流程控制

    布尔类型其实可以算是一种特殊的数字,下面是 help() 函数得到的帮助信息:  bool 首先,请注意这一行:

  8. shell入门笔记2:字符串、数组、echo与printf

    说明: 本文是关于http://c.biancheng.net/cpp/shell/的相关笔记 shell字符串 字符串可以用单引号,也可以用双引号,也可以不用引号. 1 #!/bin/bash 2 ...

  9. [HNOI2013]数列

    题目描述 小T最近在学着买股票,他得到内部消息:F公司的股票将会疯涨.股票每天的价格已知是正整数,并且由于客观上的原因,最多只能为N.在疯涨的K天中小T观察到:除第一天外每天的股价都比前一天高,且高出 ...

  10. [ZJOI2010]排列计数

    题目描述 称一个1,2,...,N的排列P1,P2...,Pn是Magic的,当且仅当2<=i<=N时,Pi>Pi/2. 计算1,2,...N的排列中有多少是Magic的,答案可能很 ...