首页 > 代码库 > Redis学习笔记05Redis命令之(4)配置和统计
Redis学习笔记05Redis命令之(4)配置和统计
1.1. 配置
1.1.1. config get
获取指定的配置信息,这些配置在redis.conf文件中指定,或者通过config set指定。config get 支持模糊匹配方式查询。
redis.coe2coe.me:6379> config get log*
1) "logfile"
2) "./logs/redis.log"
3) "loglevel"
4) "debug"
1.1.2. config set
在Redis服务运行过程中,修改Redis的配置参数,不要重新启动Redis。
redis.coe2coe.me:6379> config set loglevel verbose
OK
修改成功。
redis.coe2coe.me:6379> config set loglevel trace
(error) ERR Invalid argument ‘trace‘ for CONFIG SET ‘loglevel‘
设置为参数不支持的取值时,出错。
1.1.3. config rewrite
将Redis服务当前正使用的参数写到redis.conf文件中。
redis.coe2coe.me:6379> config rewrite
OK
1.2. 统计
1.2.1. dbsize
查看当前数据库中有多少个key。
redis.coe2coe.me:6379[1]> select 0
OK
redis.coe2coe.me:6379> dbsize
(integer) 3
返回值3表明0号数据库中有3个key。
redis.coe2coe.me:6379> select 1
OK
redis.coe2coe.me:6379> dbsize
(integer) 1
返回值1表明1号数据库中有1个key。
1.2.2. info
查看Redis服务的各种信息,包括服务器版本信息、客户端连接信息、内存信息、持久化信息、统计信息、CPU信息、复制(Replication)信息、集群(Cluster)信息,键空间(key space,逻辑数据库)信息等。
redis.coe2coe.me:6379> info
# Server
redis_version:3.2.9
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:e73d7407754e1991
redis_mode:standalone
os:Linux 3.19.0-80-generic x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.8.4
process_id:10847
run_id:e381de4281ddf43d7ca5106346676a25ada71d78
tcp_port:6379
uptime_in_seconds:192
uptime_in_days:0
hz:10
lru_clock:6676454
executable:/opt/redis/./redis-server
config_file:/opt/redis/./redis.conf
# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
# Memory
used_memory:295480
used_memory_human:288.55K
used_memory_rss:9244672
used_memory_rss_human:8.82M
used_memory_peak:295480
used_memory_peak_human:288.55K
total_system_memory:1024159744
total_system_memory_human:976.71M
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:16777216
maxmemory_human:16.00M
maxmemory_policy:noeviction
mem_fragmentation_ratio:31.29
mem_allocator:jemalloc-4.0.3
# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1499848547
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:1
total_commands_processed:16
instantaneous_ops_per_sec:0
total_net_input_bytes:343
total_net_output_bytes:97
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:1139
migrate_cached_sockets:0
# 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:0.14
used_cpu_user:0.07
used_cpu_sys_children:0.01
used_cpu_user_children:0.00
# Cluster
cluster_enabled:0
# Keyspace
db0:keys=3,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0
1.2.3. slowlog get
返回最慢的N个命令。
有2个参数定义了slowlog get的返回结果:
redis.coe2coe.me:6379> config get *slow*
1) "slowlog-log-slower-than"
2) "10000"
3) "slowlog-max-len"
4) "128"
其中,slowlog-log-slower-than决定了执行时间超过多少微秒才算“慢”。
正数:微秒数;负数:不记录慢记录,所有命令都不慢;0:所有都记录,所有命令都慢。
slowlog-max-len决定了最多返回多少条最慢的记录。
通常情况下,命令执行时间不会达到10000微秒,所以slowlog get返回一个nill。为了测试方便,先将slowlog-log-slower-than修改为一个很小的值:10微秒。
redis.coe2coe.me:6379> config set slowlog-log-slower-than 10
OK
然后执行几条命令。
查询所有的慢记录,结果为3条记录。
redis.coe2coe.me:6379> slowlog get
1) 1) (integer) 2
2) (integer) 1499849805
3) (integer) 12
4) 1) "slowlog"
2) "get"
3) "1"
2) 1) (integer) 1
2) (integer) 1499849793
3) (integer) 14
4) 1) "slowlog"
2) "get"
3) 1) (integer) 0
2) (integer) 1499849767
3) (integer) 62
4) 1) "set"
2) "port"
3) "6379"
可以看到最慢的记录是以下几个命令:
slowlog get 1
slowlog get
set port 6379
查询最慢的2条记录,结果为2条记录。
redis.coe2coe.me:6379> slowlog get 2
1) 1) (integer) 3
2) (integer) 1499849811
3) (integer) 22
4) 1) "slowlog"
2) "get"
2) 1) (integer) 2
2) (integer) 1499849805
3) (integer) 12
4) 1) "slowlog"
2) "get"
3) "1"
可以看到最慢的2条记录为:
slowlog get
slowlog get 1
慢记录的解析:
1) 1) (integer) 2 慢记录的唯一序号。
2) (integer) 1499849805 慢记录的时间戳。
3) (integer) 12 慢记录的执行时间,微秒。
4) 1) "slowlog" 慢记录的命令行。
2) "get"
3) "1"
1.2.4. slowlog len
查询慢记录的条数。
redis.coe2coe.me:6379> slowlog len
(integer) 5
返回值5表明当前有5条慢记录。
1.2.5. slowlog reset
清空所有慢记录。
redis.coe2coe.me:6379> slowlog len
(integer) 5
redis.coe2coe.me:6379> slowlog reset
OK
redis.coe2coe.me:6379> slowlog len
(integer) 0
注意:在slowlog-log-slower-than很小时产生的慢记录,在将此值改大后,并不会立即清除掉,仅仅不再产生新的慢记录。只有执行slowlog reset后才会清除掉已经产生的慢记录。
Redis学习笔记05Redis命令之(4)配置和统计