Redis教程16-服务器常用命令使用参考3
1.CONFIG RESETSTAT
CONFIG RESETSTAT
重置 INFO 命令中的某些统计数据,包括:
- Keyspace hits (键空间命中次数)
- Keyspace misses (键空间不命中次数)
- Number of commands processed (执行命令的次数)
- Number of connections received (连接服务器的次数)
- Number of expired keys (过期key的数量)
- Number of rejected connections (被拒绝的连接数量)
- Latest fork(2) time(最后执行 fork(2) 的时间)
- The aof_delayed_fsync counter(aof_delayed_fsync 计数器的值)
可用版本:>= 2.0.0
时间复杂度:O(1)
返回值:总是返回 OK 。
# 重置前 redis 127.0.0.1:6379> INFO # Server redis_version:2.5.3 redis_git_sha1:d0407c2d redis_git_dirty:0 arch_bits:32 multiplexing_api:epoll gcc_version:4.6.3 process_id:11095 run_id:ef1f6b6c7392e52d6001eaf777acbe547d1192e2 tcp_port:6379 uptime_in_seconds:6 uptime_in_days:0 lru_clock:1205426 # Clients connected_clients:1 client_longest_output_list:0 client_biggest_input_buf:0 blocked_clients:0 # Memory used_memory:331076 used_memory_human:323.32K used_memory_rss:1568768 used_memory_peak:293424 used_memory_peak_human:286.55K used_memory_lua:16384 mem_fragmentation_ratio:4.74 mem_allocator:jemalloc-2.2.5 # Persistence loading:0 aof_enabled:0 changes_since_last_save:0 bgsave_in_progress:0 last_save_time:1333260015 last_bgsave_status:ok bgrewriteaof_in_progress:0 # Stats total_connections_received:1 total_commands_processed:0 instantaneous_ops_per_sec:0 rejected_connections:0 expired_keys:0 evicted_keys:0 keyspace_hits:0 keyspace_misses:0 pubsub_channels:0 pubsub_patterns:0 latest_fork_usec:0 # Replication role:master connected_slaves:0 # CPU used_cpu_sys:0.01 used_cpu_user:0.00 used_cpu_sys_children:0.00 used_cpu_user_children:0.00 # Keyspace db0:keys=20,expires=0 # 重置 redis 127.0.0.1:6379> CONFIG RESETSTAT OK # 重置后 redis 127.0.0.1:6379> INFO # Server redis_version:2.5.3 redis_git_sha1:d0407c2d redis_git_dirty:0 arch_bits:32 multiplexing_api:epoll gcc_version:4.6.3 process_id:11095 run_id:ef1f6b6c7392e52d6001eaf777acbe547d1192e2 tcp_port:6379 uptime_in_seconds:134 uptime_in_days:0 lru_clock:1205438 # Clients connected_clients:1 client_longest_output_list:0 client_biggest_input_buf:0 blocked_clients:0 # Memory used_memory:331076 used_memory_human:323.32K used_memory_rss:1568768 used_memory_peak:330280 used_memory_peak_human:322.54K used_memory_lua:16384 mem_fragmentation_ratio:4.74 mem_allocator:jemalloc-2.2.5 # Persistence loading:0 aof_enabled:0 changes_since_last_save:0 bgsave_in_progress:0 last_save_time:1333260015 last_bgsave_status:ok bgrewriteaof_in_progress:0 # Stats total_connections_received:0 total_commands_processed:1 instantaneous_ops_per_sec:0 rejected_connections:0 expired_keys:0 evicted_keys:0 keyspace_hits:0 keyspace_misses:0 pubsub_channels:0 pubsub_patterns:0 latest_fork_usec:0 # Replication role:master connected_slaves:0 # CPU used_cpu_sys:0.05 used_cpu_user:0.02 used_cpu_sys_children:0.00 used_cpu_user_children:0.00 # Keyspace db0:keys=20,expires=0
2.CONFIG REWRITE
CONFIG REWRITE
CONFIG REWRITE 命令对启动 Redis 服务器时所指定的 redis.conf 文件进行改写: 因为 CONFIG SET 命令可以对服务器的当前配置进行修改, 而修改后的配置可能和 redis.conf 文件中所描述的配置不一样, CONFIG REWRITE 的作用就是通过尽可能少的修改, 将服务器当前所使用的配置记录到 redis.conf 文件中。
重写会以非常保守的方式进行:
- 原有 redis.conf 文件的整体结构和注释会被尽可能地保留。
- 如果一个选项已经存在于原有 redis.conf 文件中 , 那么对该选项的重写会在选项原本所在的位置(行号)上进行。
- 如果一个选项不存在于原有 redis.conf 文件中, 并且该选项被设置为默认值, 那么重写程序不会将这个选项添加到重写后的 redis.conf 文件中。
- 如果一个选项不存在于原有 redis.conf 文件中, 并且该选项被设置为非默认值, 那么这个选项将被添加到重写后的 redis.conf 文件的末尾。
- 未使用的行会被留白。 比如说, 如果你在原有 redis.conf 文件上设置了数个关于 save 选项的参数, 但现在你将这些 save 参数的一个或全部都关闭了, 那么这些不再使用的参数原本所在的行就会变成空白的。
即使启动服务器时所指定的 redis.conf 文件已经不再存在, CONFIG REWRITE 命令也可以重新构建并生成出一个新的 redis.conf 文件。
另一方面, 如果启动服务器时没有载入 redis.conf 文件, 那么执行 CONFIG REWRITE 命令将引发一个错误。
原子性重写
对 redis.conf 文件的重写是原子性的, 并且是一致的: 如果重写出错或重写期间服务器崩溃, 那么重写失败, 原有 redis.conf 文件不会被修改。 如果重写成功, 那么 redis.conf 文件为重写后的新文件。
可用版本:>= 2.8.0
返回值:一个状态值:如果配置重写成功则返回 OK ,失败则返回一个错误。
测试
以下是执行 CONFIG REWRITE 前, 被载入到 Redis 服务器的 redis.conf 文件中关于 appendonly 选项的设置:
# ... 其他选项
appendonly no
# ... 其他选项
在执行以下命令之后:
127.0.0.1:6379> CONFIG GET appendonly # appendonly 处于关闭状态 1) "appendonly" 2) "no" 127.0.0.1:6379> CONFIG SET appendonly yes # 打开 appendonly OK 127.0.0.1:6379> CONFIG GET appendonly 1) "appendonly" 2) "yes" 127.0.0.1:6379> CONFIG REWRITE # 将 appendonly 的修改写入到 redis.conf 中 OK
重写后的 redis.conf 文件中的 appendonly 选项将被改写:
# ... 其他选项
appendonly yes
# ... 其他选项
3.CONFIG SET
CONFIG SET parameter value
CONFIG SET 命令可以动态地调整 Redis 服务器的配置(configuration)而无须重启。
你可以使用它修改配置参数,或者改变 Redis 的持久化(Persistence)方式。
CONFIG SET 可以修改的配置参数可以使用命令 CONFIG GET * 来列出,所有被 CONFIG SET 修改的配置参数都会立即生效。
关于 CONFIG SET 命令的更多消息,请参见命令 CONFIG GET 的说明。
关于如何使用 CONFIG SET 命令修改 Redis 持久化方式,请参见 Redis Persistence 。
可用版本:>= 2.0.0
时间复杂度:不明确
返回值:当设置成功时返回 OK ,否则返回一个错误。
redis> CONFIG GET slowlog-max-len 1) "slowlog-max-len" 2) "1024" redis> CONFIG SET slowlog-max-len 10086 OK redis> CONFIG GET slowlog-max-len 1) "slowlog-max-len" 2) "10086"
4.DBSIZE
DBSIZE
返回当前数据库的 key 的数量。
可用版本:>= 1.0.0
时间复杂度:O(1)
返回值:当前数据库的 key 的数量。
redis> DBSIZE (integer) 5 redis> SET new_key "hello_moto" # 增加一个 key 试试 OK redis> DBSIZE (integer) 6