key
keys
查找所有符合给定模式 pattern 的 key,支持glob风格匹配
? 匹配一个字符
* 匹配任意个(包括0个)字符
[] 匹配括号间的任一个字符,可以使用 “-” 符号表示一个范围,如 a[b-d] 可以匹配 “ab”,”ac”,”ad”
\x 匹配字符x,用于转义符号,如果要匹配 “?” 就需要使用 \?
例:redis> MSET one 1 two 2 three 3 four 4 # 一次设置 4 个 key OK redis> KEYS *o* 1) "four" 2) "two" 3) "one" redis> KEYS t?? 1) "two" redis> KEYS t[w]* 1) "two" redis> KEYS * # 匹配数据库内所有 key 1) "four" 2) "three" 3) "two" 4) "one"
exists
判断某个key是否存在
命令格式:exists key
例:127.0.0.1:6379> EXISTS key1 (integer) 0
type
查看key的数据类型
命令格式:type key
例:127.0.0.1:6379> set str "hello" OK 127.0.0.1:6379> type str string
rename
为key重命名
命令格式:rename key newkey
例:127.0.0.1:6379> set str "hello" OK 127.0.0.1:6379> RENAME str str_new OK 127.0.0.1:6379> get str_new "hello"
randomkey
随机返回一个key
命令格式:randomkey
例:127.0.0.1:6379> RANDOMKEY "c"
del
删除key
命令格式:del key
例:127.0.0.1:6379> del c (integer) 1
配置
config get
查询配置
命令格式:config get parameter (parameter指配置名)
例:127.0.0.1:6379> CONFIG GET * #获取所有配置 1) "dbfilename" 2) "dump.rdb" 3) "requirepass" 4) "" 5) "masterauth" 6) "" 7) "cluster-announce-ip" 8) "" 9) "unixsocket" 10) ""
config set
修改配置
命令格式:config set parameter value (parameter指配置名,value指新值)
例:127.0.0.1:6379> CONFIG get masterauth 1) "masterauth" 2) "" 127.0.0.1:6379> CONFIG set masterauth 12345 OK 127.0.0.1:6379> CONFIG get masterauth 1) "masterauth" 2) "12345"
数据库
redis默认有0到15一共16个数据库,每个数据库拥有独立的key独立的命名空间。
dbsize
查看数据库key数量
命令格式:dbsize
例:127.0.0.1:6379> DBSIZE (integer) 4
select
切换数据库
命令格式:select index (index为数据库号)
例:127.0.0.1:6379> SELECT 1 OK 127.0.0.1:6379[1]>
flushall
清空所有数据库
命令格式:flushall
例:127.0.0.1:6379> FLUSHALL OK
flushdb
清空当前数据库
命令格式:flushdb
例:127.0.0.1:6379> FLUSHDB OK
move
移动数据key到另一个数据库
命令格式:move key index (index为目标数据库)
例:127.0.0.1:6379> MOVE one 1 (integer) 1 127.0.0.1:6379> SELECT 1 OK 127.0.0.1:6379[1]> KEYS * 1) "one"
服务状态
ping
测试client与server的连通性,如连接正常会返回pong
命令格式:ping
例:127.0.0.1:6379> ping PONG
info
查看服务器信息,包括CPU,内存,复制,持久化等信息。
命令格式:info
例:127.0.0.1:6379> INFO # Server redis_version:4.0.9 redis_git_sha1:00000000 # Clients connected_clients:1 # Memory used_memory:848384 used_memory_human:828.50K used_memory_rss:4759552 used_memory_rss_human:4.54M # Persistence loading:0 rdb_changes_since_last_save:5 rdb_bgsave_in_progress:0 # Stats total_connections_received:3 total_commands_processed:23 instantaneous_ops_per_sec:0 total_net_input_bytes:1187 total_net_output_bytes:31491 # Replication role:master connected_slaves:0 master_replid:201f27ab290b092d11da749fb7b50ef31c9bd13b # Server redis_version:4.0.9 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:c946d801634fe2f1
shutdown
关闭redis
命令格式:shuown
例:127.0.0.1:6379> SHUTDOWN not connected>
原生监控
为了方便定位故障,redis提供了原生监控命令。
当前链接的客户端数和连接数
redis-cli –stat查看当前连接的客户端数,连接数等。------- data ------ --------------------- load -------------------- - child - keys mem clients blocked requests connections 4 829.79K 1 0 0 (+0) 1 4 829.79K 1 0 1 (+0) 1 4 829.79K 1 0 2 (+1) 1 4 829.79K 1 0 3 (+1) 1 4 829.79K 1 0 4 (+1) 1 4 829.79K 1 0 5 (+1) 1 4 829.79K 1 0 6 (+1) 1 4 829.79K 1 0 7 (+1) 1 4 829.79K 1 0 8 (+1) 1 4 829.79K 1 0 9 (+1) 1 4 829.79K 1 0 10 (+1) 1
内存最大的键值和平均的键值数据
redis-cli –bigkeys 查看当前占用内存最大的键值和平均的键值数据,也可以通过指定-i参数定时查看当前的视图情况。# Scanning the entire keyspace to find biggest keys as well as # average sizes per key type. You can use -i 0.1 to sleep 0.1 sec # per 100 SCAN commands (not usually needed). [00.00%] Biggest string found so far 'b' with 1 bytes [00.00%] Biggest string found so far 'str' with 5 bytes -------- summary ------- Sampled 4 keys in the keyspace! Total key length in bytes is 6 (avg len 1.50) Biggest string found 'str' has 5 bytes 4 strings with 8 bytes (100.00% of keys, avg size 2.00) 0 lists with 0 items (00.00% of keys, avg size 0.00) 0 sets with 0 members (00.00% of keys, avg size 0.00) 0 hashs with 0 fields (00.00% of keys, avg size 0.00) 0 zsets with 0 members (00.00% of keys, avg size 0.00) 0 streams with 0 entries (00.00% of keys, avg size 0.00)
查看当前的键值情况
redis-cli –scan提供和keys *相似的功能,查看当前的键值情况。root@ubuntu:/home/chenli# redis-cli --scan b a d str
原生的Monitor监控
redis-cli monitor打印出所有sever接收到的命令以及其对应的客户端地址。root@ubuntu:/home/chenli# redis-cli monitor │connected_slaves:0 OK │master_replid:8bd6c5d16383bc44ee54b05e50f8196de9711d3 1530380321.325409 [0 127.0.0.1:44484] "ping" │c 1530380326.702314 [0 127.0.0.1:44484] "info"
总结
本文简单的总结了日常工作可能经常使用的命令,当然随着redis版本的迭代,部分命令可能会有变化。面对不同的版本时可以通过多查看官方文档或者使用help命令以及自动补全等来帮助我们。