“Redis:常用命令”的版本间差异

来自Wikioe
跳到导航 跳到搜索
第2行: 第2行:


== Redis命令 ==
== Redis命令 ==
redis手册:
Redis 使用过程中可能用到的命令。
* redis英文版命令大全:“https://redis.io/commands”
* redis中文版命令大全:“http://redisdoc.com/”


=== 连接命令 ===
 
参考:
* <s>redis英文版命令大全:“https://redis.io/commands”</s>
* <s>redis中文版命令大全:“http://redisdoc.com/”</s>
* Redis 命令参考:“'''http://doc.redisfans.com/'''”
 
== Key(键) ==
redis 以 key-value 存储数据,'''所有的操作均为对 key 的操作'''。
{| class="wikitable"
! 命令 !! 说明
|-
| '''keys pattern''' || 查找所有符合给定模式( pattern)的 key 。如“keys *”:列出所有的key;
|-
| '''type''' <key> || 查看 key 所储存的值的类型
|-
| '''exists''' <key> || 检查某个key是否存在
|-
| '''random''' <key> || 从当前数据库中随机返回一个 key 。
|-
| '''rename''' <key> <newkey> || 修改 key 的名称为 newkey
|-
| '''renamenx''' <key> <newkey> || 修改 key 的名称为 newkey (仅当 newkey 不存在时)。
|-
| '''move''' <key> '''db''' || 将当前库的 key 移动到给定的库db中,比如:“move k1 2”
|-
| '''del''' <key> || 删除 key
|-
| '''scan cursor''' [MATCH pattern] [COUNT count] || 迭代数据库中的数据库键【???】
|-
| '''dump''' <key> || 序列化给定 key ,并返回被序列化的值。【???】
|-
| '''expire''' <key> '''seconds''' || 设置 key 的值的过期时间,以秒计。
|-
| '''expireat''' <key> '''timestamp''' || 设置 key 的值的过期时间,时间参数是 UNIX 时间戳(unix timestamp)。
|-
| '''pexpire''' <key> '''milliseconds''' || 设置 key 的过期时间,以毫秒计。
|-
| '''pexpireat''' <key> '''milliseconds-timestamp''' || 设置 key 过期时间的时间戳(unix timestamp) ,以毫秒计。
|-
| '''presist''' <key> || 移除 key 的过期时间,key 将持久保持。
|-
| '''ttl''' <key> || 以秒为单位,返回给定 key 的剩余生存时间:-1 永不过期,-2 已过期或 key 不存在。ttl(time to live)
|-
| '''pyyl''' <key> || 以毫秒为单位,返回 key 的剩余的过期时间。
|}
 
== 数据类型 ==
* 见:
*# “[[Redis:数据类型]]”
*# “[[Redis:HyperLogLog]]”
*# “[[Redis:GEO(地理位置信息)]]”
*# “[[Redis:Stream]]”
 
== Pub/Sub(发布/订阅) ==
* 见:“[[Redis:发布/订阅]]”
 
== Transaction(事务) ==
* 见:“[[Redis:事务]]”
 
== Script(脚本) ==
Redis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 '''EVAL'''。
 
Eval 命令的基本语法如下:
<syntaxhighlight lang="java" highlight="">
redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]
</syntaxhighlight>
 
 
下表列出了 redis 脚本常用命令:
{| class="wikitable"
! 命令 !! 描述
|-
| EVAL <script> numkeys <key> [<key>] <arg> [<arg>] || 执行 Lua 脚本。
|-
| EVALSHA sha1 numkeys <key> [<key>] <arg> [<arg>] || 执行 Lua 脚本。【?】
|-
| SCRIPT LOAD <script> || 将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。
|-
| SCRIPT EXISTS <script> [<script>] || 查看指定的脚本是否已经被保存在缓存当中。
|-
| SCRIPT FLUSH || 从脚本缓存中移除所有脚本。
|-
| SCRIPT KILL || 杀死当前正在运行的 Lua 脚本。
|}
 
 
示例:
<syntaxhighlight lang="java" highlight="">
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"
</syntaxhighlight>
 
== Connection(连接) ==
Redis 连接命令主要是用于连接 redis 服务:
Redis 连接命令主要是用于连接 redis 服务:
{| class="wikitable"
{| class="wikitable"
第30行: 第124行:
</syntaxhighlight>
</syntaxhighlight>


=== 服务器命令 ===
== Server(服务器) ==
Redis 服务器命令主要是用于管理 redis 服务:
Redis 服务器命令主要是用于管理 redis 服务:
{| class="wikitable"
{| class="wikitable"
第189行: 第283行:
db1:keys=1,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0
db3:keys=1,expires=0,avg_ttl=0
db3:keys=1,expires=0,avg_ttl=0
</syntaxhighlight>
=== 脚本命令 ===
Redis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 '''EVAL'''。
Eval 命令的基本语法如下:
<syntaxhighlight lang="java" highlight="">
redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]
</syntaxhighlight>
下表列出了 redis 脚本常用命令:
{| class="wikitable"
! 命令 !! 描述
|-
| EVAL <script> numkeys <key> [<key>] <arg> [<arg>] || 执行 Lua 脚本。
|-
| EVALSHA sha1 numkeys <key> [<key>] <arg> [<arg>] || 执行 Lua 脚本。【?】
|-
| SCRIPT LOAD <script> || 将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。
|-
| SCRIPT EXISTS <script> [<script>] || 查看指定的脚本是否已经被保存在缓存当中。
|-
| SCRIPT FLUSH || 从脚本缓存中移除所有脚本。
|-
| SCRIPT KILL || 杀死当前正在运行的 Lua 脚本。
|}
示例:
<syntaxhighlight lang="java" highlight="">
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"
</syntaxhighlight>
</syntaxhighlight>

2021年10月2日 (六) 11:58的版本


Redis命令

Redis 使用过程中可能用到的命令。


参考:

Key(键)

redis 以 key-value 存储数据,所有的操作均为对 key 的操作

命令 说明
keys pattern 查找所有符合给定模式( pattern)的 key 。如“keys *”:列出所有的key;
type <key> 查看 key 所储存的值的类型
exists <key> 检查某个key是否存在
random <key> 从当前数据库中随机返回一个 key 。
rename <key> <newkey> 修改 key 的名称为 newkey
renamenx <key> <newkey> 修改 key 的名称为 newkey (仅当 newkey 不存在时)。
move <key> db 将当前库的 key 移动到给定的库db中,比如:“move k1 2”
del <key> 删除 key
scan cursor [MATCH pattern] [COUNT count] 迭代数据库中的数据库键【???】
dump <key> 序列化给定 key ,并返回被序列化的值。【???】
expire <key> seconds 设置 key 的值的过期时间,以秒计。
expireat <key> timestamp 设置 key 的值的过期时间,时间参数是 UNIX 时间戳(unix timestamp)。
pexpire <key> milliseconds 设置 key 的过期时间,以毫秒计。
pexpireat <key> milliseconds-timestamp 设置 key 过期时间的时间戳(unix timestamp) ,以毫秒计。
presist <key> 移除 key 的过期时间,key 将持久保持。
ttl <key> 以秒为单位,返回给定 key 的剩余生存时间:-1 永不过期,-2 已过期或 key 不存在。ttl(time to live)
pyyl <key> 以毫秒为单位,返回 key 的剩余的过期时间。

数据类型

Pub/Sub(发布/订阅)

Transaction(事务)

Script(脚本)

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

Eval 命令的基本语法如下:

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


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

命令 描述
EVAL <script> numkeys <key> [<key>] <arg> [<arg>] 执行 Lua 脚本。
EVALSHA sha1 numkeys <key> [<key>] <arg> [<arg>] 执行 Lua 脚本。【?】
SCRIPT LOAD <script> 将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。
SCRIPT EXISTS <script> [<script>] 查看指定的脚本是否已经被保存在缓存当中。
SCRIPT FLUSH 从脚本缓存中移除所有脚本。
SCRIPT KILL 杀死当前正在运行的 Lua 脚本。


示例:

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"

Connection(连接)

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

命令 描述
AUTH <password> 验证密码是否正确
ECHO <message> 打印字符串
PING 查看服务是否运行
QUIT 关闭当前连接
SELECT <index> 切换到指定的数据库

示例:

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

Server(服务器)

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

命令 描述
INFO [section] 获取 Redis 服务器的各种信息和统计数值
MONITOR 实时打印出 Redis 服务器接收到的命令,调试用
DBSIZE 返回当前数据库的 key 的数量
FLUSHALL 删除所有数据库的所有key
FLUSHDB 删除当前数据库的所有key
TIME 返回当前服务器时间
LASTSAVE 返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示
SAVE 同步保存数据到硬盘
BGSAVE 在后台异步保存当前数据库的数据到磁盘
BGREWRITEAOF 异步执行一个 AOF(AppendOnly File) 文件重写操作
SHUTDOWN [NOSAVE] [SAVE] 异步保存数据到硬盘,并关闭服务器
COMMAND 获取 Redis 命令详情数组
COMMAND COUNT 获取 Redis 命令总数
COMMAND GETKEYS 获取给定命令的所有键
COMMAND INFO <command-name> [<command-name>] 获取指定 Redis 命令描述的数组
CLIENT LIST 获取连接到服务器的客户端连接列表
CLIENT GETNAME 获取连接的名称
CLIENT PAUSE <timeout> 在指定时间内终止运行来自客户端的命令
CLIENT SETNAME <connection-name> 设置当前连接的名称
CLIENT KILL [ip:port] [ID client-id] 关闭客户端连接
CONFIG GET <parameter> 获取指定配置参数的值
CONFIG REWRITE 对启动 Redis 服务器时所指定的 redis.conf 配置文件进行改写
CONFIG SET <parameter> <value> 修改 redis 配置参数,无需重启
CONFIG RESETSTAT 重置 INFO 命令中的某些统计数据
DEBUG OBJECT <key> 获取 key 的调试信息
DEBUG SEGFAULT 让 Redis 服务崩溃【???】
SLOWLOG <subcommand> [argument] 管理 redis 的慢日志
CLUSTER SLOTS 获取集群节点的映射数组
ROLE 返回主从实例所属的角色
SLAVEOF <host> <port> 将当前服务器转变为指定服务器的从属服务器(slave server)
SYNC 用于复制功能(replication)的内部命令


以下实例演示了如何获取 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