Redis基本命令
  Op9yysgqYUmV 2023年11月02日 90 0


Redis 命令用于在 redis 服务上执行操作。要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中,Windows环境下我们可以直接运行启动redis.exe文件或者在redis目录下打开一个cmd窗口运行 :

redis-cli.exe -h 127.0.0.1 -p 6379

在linux环境下则是进入redis安装包下的src目录,然后运行:

./redis-cli

下面通过实例说明,打开一个客户端

redis 127.0.0.1:6379>
redis 127.0.0.1:6379> PING

PONG

在以上实例中我们连接到本地的 redis 服务并执行 PING 命令,该命令用于检测 redis 服务是否启动。

 

在远程服务上执行命令

如果需要在远程 redis 服务上执行命令,同样我们使用的也是 redis-cli 命令。

语法

$ redis-cli -h host -p port -a password

实例

以下实例演示了如何连接到主机为 127.0.0.1,端口为 6379 ,密码为 mypass 的 redis 服务上。

$redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> PING

PONG

Redis 发布订阅

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

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

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

Redis基本命令_服务器

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

Redis基本命令_Redis_02

 

实例

以下实例演示了发布订阅是如何工作的。在我们实例中我们创建了订阅频道名为 redisChat:

redis 127.0.0.1:6379> SUBSCRIBE redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1

现在,我们先重新开启个 redis 客户端,然后在同一个频道 redisChat 发布两次消息,订阅者就能接收到消息。

redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"
(integer) 1
redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by runoob.com"
(integer) 1

 

# 订阅者的客户端会显示如下消息

1) "message"
2) "redisChat"
3) "Redis is a great caching technique"
1) "message"
2) "redisChat"
3) "Learn redis by runoob.com"

 

Redis 发布订阅命令

下表列出了 redis 发布订阅常用命令:

序号

命令及描述

1

PSUBSCRIBE pattern [pattern ...] 

订阅一个或多个符合给定模式的频道。

2

PUBSUB subcommand [argument [argument ...]] 

查看订阅与发布系统状态。

3

PUBLISH channel message 

将信息发送到指定的频道。

4

PUNSUBSCRIBE [pattern [pattern ...]] 

退订所有给定模式的频道。

5

SUBSCRIBE channel [channel ...] 

订阅给定的一个或多个频道的信息。

6

UNSUBSCRIBE [channel [channel ...]] 

指退订给定的频道。

 

排序

Redis 的排序操作和其他编程语言的排序操作一样, 都可以根据某种比较规则对一系列元素进行有序的排列。负责执行排序操作的 soRT命令可以根据字符串、列表、集合、有序集合、散列这5种键里面存储着的数据, 对列表、集合以及有序集合进行排序。

命令

用例和描述

SPRT

SORT source-key [BY pattern] [LIMIT Offset count] [GET pattern [GETpattern ...]] [ASC|DESC] [ALPHA] [STORE dost-key]_根据给定的选项, 对输入列表、集合或者有序集合进行排序,然后返回或者存储排序的结果

使用 soRT命令提供的选项可以实现以下功能:根据降序而不是默认的升序来排序元素;将元素看作是数字来进行排序, 或者将元素看作是二进制字符串来进行排序 ( 比如排序字符串' 110'和' 12 '的结果就跟排序数字110和12的结果不一样);使用被排序元素之外的其他值作为权重来进行排序, 甚至还可以从输入的列表、 集合、 有序集合以外的其他地方进行取值。

soRT命令不仅可以对列表进行排序, 还可以对集合进行排序, 然后返回一个列表形式的排序结果。

键的过期时间

在使用 Redis存储数据的时候. 有些数据可能在某个时间点之后就不再有用了, 用户可以使用 DEL命令显式地删除这些光用数据, ti1,可以通过 Redis的过期时间( expiration)特性来让一个键在给定的时限( timeout)之后自动被删除,当我们说一个键一带有生.存时间(timetolive)”或者一个键“会在特定时间之后过期( expire)”时,我们指的是 Redis会在这个键的过期时问到达时自动删除该键。

用于处理过期时间的 Redis命令

命令

示例和描述

PERSIST

PERSIST key-name——移除键的过期时间

TTL

TTL key-name——査看给定键距离过期还有多少秒

EXPIRE

EXPIRE key-name seconds——让给定键在指定的秒数之后过期

EXPIREAT

EXPIREAT key-name timestamp——将给定键的过期时间设置为给定的UNIX时间戳

PTTL

PTTL key-name——査看给定键距离过期时间还有多少毫秒, 这个命令在 Redis2.6或以上版本可用

PEXPIRE

PEXPIRE key-name milliseconds——让给定键在指定的毫秒数之后过期,这个命令在 Redis2.6或以上版本可用

PEXPIREAT

PEXPIREAT key-name timestamp-milliseconds——将一个毫秒级精度的UNIX时间戳设置为给定键的过期时间, 这个命令在 Redis2.6或以上版本可用

 

Redis 脚本

Redis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。

语法

Eval 命令的基本语法如下:

redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]

实例

以下实例演示了 redis 脚本工作过程:

redis 127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second

1) "key1"
2) "key2"
3) "first"
4) "second"

Redis 脚本命令

下表列出了 redis 脚本常用命令:

序号

命令及描述

1

EVAL script numkeys key [key ...] arg [arg ...] 

执行 Lua 脚本。

2

EVALSHA sha1 numkeys key [key ...] arg [arg ...] 

执行 Lua 脚本。

3

SCRIPT EXISTS script [script ...] 

查看指定的脚本是否已经被保存在缓存当中。

4

SCRIPT FLUSH 

从脚本缓存中移除所有脚本。

5

SCRIPT KILL 

杀死当前正在运行的 Lua 脚本。

6

SCRIPT LOAD script 

将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。

 

Redis 连接

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

实例

以下实例演示了客户端如何通过密码验证连接到 redis 服务,并检测服务是否在运行:

redis 127.0.0.1:6379> AUTH "password"
OK
redis 127.0.0.1:6379> PING
PONG

下表列出了 redis 连接的基本命令:

序号

命令及描述

1

AUTH password 

验证密码是否正确

2

ECHO message 

打印字符串

3

PING 

查看服务是否运行

4

QUIT 

关闭当前连接

5

SELECT index 

切换到指定的数据库

Redis 服务器

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

实例

以下实例演示了如何获取 redis 服务器的统计信息:

redis 127.0.0.1:6379> INFO

# Server
redis_version:2.8.13
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:c2238b38b1edb0e2
redis_mode:standalone
os:Linux 3.5.0-48-generic x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.7.2
process_id:3856
run_id:0e61abd297771de3fe812a3c21027732ac9f41fe
tcp_port:6379
uptime_in_seconds:11554
uptime_in_days:0
hz:10
lru_clock:16651447
config_file:

# Clients
connected_clients:1
client-longest_output_list:0
client-biggest_input_buf:0
blocked_clients:0

# Memory
used_memory:589016
used_memory_human:575.21K
used_memory_rss:2461696
used_memory_peak:667312
used_memory_peak_human:651.67K
used_memory_lua:33792
mem_fragmentation_ratio:4.18
mem_allocator:jemalloc-3.6.0

# Persistence
loading:0
rdb_changes_since_last_save:3
rdb_bgsave_in_progress:0
rdb_last_save_time:1409158561
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok

# Stats
total_connections_received:24
total_commands_processed:294
instantaneous_ops_per_sec:0
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:41
keyspace_misses:82
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:264

# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

# CPU
used_cpu_sys:10.49
used_cpu_user:4.96
used_cpu_sys_children:0.00
used_cpu_user_children:0.01

# Keyspace
db0:keys=94,expires=1,avg_ttl=41638810
db1:keys=1,expires=0,avg_ttl=0
db3:keys=1,expires=0,avg_ttl=0

 

Redis 服务器命令

下表列出了 redis 服务器的相关命令:

序号

命令及描述

1

BGREWRITEAOF 

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

2

BGSAVE 

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

3

CLIENT KILL [ip:port] [ID client-id] 

关闭客户端连接

4

CLIENT LIST 

获取连接到服务器的客户端连接列表

5

CLIENT GETNAME 

获取连接的名称

6

CLIENT PAUSE timeout 

在指定时间内终止运行来自客户端的命令

7

CLIENT SETNAME connection-name 

设置当前连接的名称

8

CLUSTER SLOTS 

获取集群节点的映射数组

9

COMMAND 

获取 Redis 命令详情数组

10

COMMAND COUNT 

获取 Redis 命令总数

11

COMMAND GETKEYS 

获取给定命令的所有键

12

TIME 

返回当前服务器时间

13

COMMAND INFO command-name [command-name ...] 

获取指定 Redis 命令描述的数组

14

CONFIG GET parameter 

获取指定配置参数的值

15

CONFIG REWRITE 

对启动 Redis 服务器时所指定的 redis.conf 配置文件进行改写

16

CONFIG SET parameter value 

修改 redis 配置参数,无需重启

17

CONFIG RESETSTAT 

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

18

DBSIZE 

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

19

DEBUG OBJECT key 

获取 key 的调试信息

20

DEBUG SEGFAULT 

让 Redis 服务崩溃

21

FLUSHALL 

删除所有数据库的所有key

22

FLUSHDB 

删除当前数据库的所有key

23

INFO [section] 

获取 Redis 服务器的各种信息和统计数值

24

LASTSAVE 

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

25

MONITOR 

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

26

ROLE 

返回主从实例所属的角色

27

SAVE 

同步保存数据到硬盘

28

SHUTDOWN [NOSAVE] [SAVE] 

异步保存数据到硬盘,并关闭服务器

29

SLAVEOF host port 

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

30

SLOWLOG subcommand [argument] 

管理 redis 的慢日志

31

SYNC 

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

 

篇幅有限,我们先介绍这么多,下一篇我们再介绍其他命令

 

参考:

http://www.runoob.com/redis/redis-commands.html

http://www.redis.net.cn/tutorial/3506.html

https://www.yiibai.com/redis/redis_commands.html

https://redis.io/commands

 

 

 

 

 

 

 

 

 

 

 

 

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: Redis数据类型 下一篇: Redis 主从模式详解
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
Op9yysgqYUmV