redis单机版启动:
[root@localhost src]# ./redis-server /usr/local/redis/redis-3.2.10/redis.conf
redis单机版终止服务进程:
redis-cli shutdown
redis单机版连接登录方式:
#不带密码的redis单机
redis-cli -h host -p port
#带密码的redis单机
redis-cli -h host -p port -a password
redis集群版连接登录方式:
#redis登录--不需要密码的redis集群
redis-cli -h host -p 7001 -c
#redis登录--需要密码的redis集群
redis-cli -h host -p 7001 -c -a password
需要密码的redis集群连接登录方式:
#需要密码的redis集群--redis登录方式1
redis-cli -h host -p 7001 -c -a password
#需要密码的redis集群--redis登录方式2
[root@redis1 ~]# redis-cli -h 192.168.158.202 -p 7001 -c
192.168.158.202:7001> auth cBg756hQf35 # 进入redis命令行后 auth passowrd
OK
192.168.158.202:7001>
redis-3.2.10 集群,连接redis服务示例:
使用 redis1(192.168.158.201) 的 redis-cli 连接 redis2(192.168.158.202) 的 7003 节点:
(集群不带密码场景:)
/usr/local/redis-3.2.10/src/redis-cli -h 192.168.158.202 -p 7003 -c # 加参数-c,代表集群 ,-c位置不做要求
或
/usr/local/bin/redis-cli -c -h 192.168.158.202 -p 7003 # 加参数-c,代表集群,-c位置不做要求
补充1:
关闭某个节点服务的命令为:
以关闭 192.168.158.202 上 端口为7001、7002 的两个redis节点服务为例:
/usr/local/bin/redis-cli -c -h 192.168.158.202 -p 7001 shutdown
/usr/local/bin/redis-cli -c -h 192.168.158.202 -p 7002 shutdown
关闭后192.168.158.202 上还只剩1个 7003节点服务活者,如下图:
补充2:
启动/关闭集群节点服务,我们可以在每个服务器上写一个启动脚本 start-redis.sh
#!/bin/bash
for ((i=1;i<=3;i++));
do /usr/local/bin/redis-server /data/redis_data/700$i/redis.conf;
done
echo "========= 启动服务完毕! ==========="
如图:
关闭服务类似,我们同样可以写一个脚本 stop-redis.sh
#!/bin/bash
IP="192.168.158.202"
for ((i=1;i<=3;i++));
do /usr/local/bin/redis-cli -c -h $IP -p 700$i shutdown;
done
echo "============ redis服务关闭完毕!================"
---------------------------------------------------------------------------------------------------------
redis-cli命令行操作:
1.设置值、查看值:
将RDS_ORDER_NO的Key值改成100000
登录后:
192.168.0.121:7000> set RDS_ORDER_NO 100000
OK
192.168.0.121:7000> get RDS_ORDER_NO
"100000"
eg:
登录集群 redis-cli -h 192.168.158.201 -p 7001 -c
设置值,查看值
2.退出redis-cli 命令行:
exit 或 quit
eg:
3. 查看集群信息 cluster info
注意:如果redis集群没有密码,则省略 -a password, 如果redis集群有密码,则要加 -a password
方式1:
[root@redis1 ~]# redis-cli -h 192.168.158.202 -p 7001 -c -a cBg756hQf35 cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:7
cluster_my_epoch:7
cluster_stats_messages_sent:314724
cluster_stats_messages_received:314655
[root@redis1 ~]#
方式2:
登录 redis-cli -h 192.168.158.201 -p 7001 -c
查看集群节点信息 进入redis-cli命令行 cluster info
[root@redis1 ~]# redis-cli -h 192.168.158.201 -p 7001 -c
192.168.158.201:7001> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_sent:2226
cluster_stats_messages_received:2226
192.168.158.201:7001>
9个节点的:
[root@redis1 7001]# /usr/local/bin/redis-cli -h 192.168.158.203 -p 7001 -c -a cBg756hQf35 cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:9
cluster_size:3
cluster_current_epoch:439
cluster_my_epoch:439
cluster_stats_messages_sent:306617793
cluster_stats_messages_received:306611222
[root@redis1 7001]#
4. 查看集群节点信息 cluster nodes
方式1:
[root@redis1 ~]# redis-cli -h 192.168.158.202 -p 7001 -c -a cBg756hQf35 cluster nodes
9e4ac4350b85148cedd53c51027db617d27d4fbc 192.168.158.202:7003 slave 5bab5278278cc9e5af5196fbe8ce33db53c3b9d0 0 1589638640615 6 connected
5cc81930eb00c813c92a0b1d6a91473da65fb85f 192.168.158.202:7001 myself,slave eefdc254fb3eda030452a87f5e3921934410717a 0 0 4 connected
05712dbd73f963f72eb976e95b559dba751215f6 192.168.158.202:7002 slave d49a289806b28dd69cd41c6a7af8615ef7254a44 0 1589638641627 5 connected
d49a289806b28dd69cd41c6a7af8615ef7254a44 192.168.158.201:7001 master - 0 1589638641123 1 connected 0-5460
eefdc254fb3eda030452a87f5e3921934410717a 192.168.158.201:7003 master - 0 1589638640616 7 connected 5461-10922
5bab5278278cc9e5af5196fbe8ce33db53c3b9d0 192.168.158.201:7002 master - 0 1589638642138 2 connected 10923-16383
[root@redis1 ~]#
方式2:
登录集群 redis-cli -h 192.168.158.201 -p 7001 -c # 如果redis有密码,后面再加个 -a password
列出集群节点 redis-cli命令行 cluster nodes
192.168.158.201:7001> cluster nodes
5bab5278278cc9e5af5196fbe8ce33db53c3b9d0 192.168.158.201:7002 master - 0 1585055135326 2 connected 10923-16383
5cc81930eb00c813c92a0b1d6a91473da65fb85f 192.168.158.202:7001 slave eefdc254fb3eda030452a87f5e3921934410717a 0 1585055136838 7 connected
d49a289806b28dd69cd41c6a7af8615ef7254a44 192.168.158.201:7001 myself,master - 0 0 1 connected 0-5460
eefdc254fb3eda030452a87f5e3921934410717a 192.168.158.201:7003 master - 0 1585055136838 7 connected 5461-10922
05712dbd73f963f72eb976e95b559dba751215f6 192.168.158.202:7002 slave d49a289806b28dd69cd41c6a7af8615ef7254a44 0 1585055136334 5 connected
9e4ac4350b85148cedd53c51027db617d27d4fbc 192.168.158.202:7003 slave 5bab5278278cc9e5af5196fbe8ce33db53c3b9d0 0 1585055135327 6 connected
192.168.158.201:7001>
9个节点的:
[root@redis1 7001]# /usr/local/bin/redis-cli -h 192.168.158.203 -p 7001 -c -a cBg756hQf35 cluster nodes
05bc63e71120a6fba249de9d3d8cce6cd996a73b 192.168.158.203:7002 master - 0 1589640443039 436 connected 0-5460
41f0dfdb5a861e3d35e355a3e0d13207d178f0f5 192.168.158.201:7001 master - 0 1589640441536 438 connected 10923-16383
b304e26df5997abd66f0b9c49c97525205cdd2f0 192.168.158.202:7003 slave 41f0dfdb5a861e3d35e355a3e0d13207d178f0f5 0 1589640441536 438 connected
08c1ac78e5525fe7de0c6103655123ab9e9d9084 192.168.158.202:7001 slave 8e7a64afd4c9e22526a8b4017410e56c4e5ff3e5 0 1589640442036 439 connected
6878b02a55c03e5ee2866673470daf2851eed5ec 192.168.158.203:7001 myself,slave 8e7a64afd4c9e22526a8b4017410e56c4e5ff3e5 0 0 427 connected
b106d8be8c3708139a374e82e57f537670ffad94 192.168.158.202:7002 slave 05bc63e71120a6fba249de9d3d8cce6cd996a73b 0 1589640442538 436 connected
8e7a64afd4c9e22526a8b4017410e56c4e5ff3e5 192.168.158.201:7003 master - 0 1589640442538 439 connected 5461-10922
5b25441855efdaef88804159ba5eb50a1f1ffee3 192.168.158.203:7003 slave 41f0dfdb5a861e3d35e355a3e0d13207d178f0f5 0 1589640441536 438 connected
4ea1456fd702ac5309480c8f66666246519db12e 192.168.158.201:7002 slave 05bc63e71120a6fba249de9d3d8cce6cd996a73b 0 1589640442036 436 connected
[root@redis1 7001]#
5. 列出客户端 client list
[root@redis1 7001]# /usr/local/bin/redis-cli -h 192.168.158.202 -p 7001 -c -a asQet4w65Rd client list
id=62238263 addr=192.168.158.121:35369 fd=24 name= age=53 idle=23 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=62238264 addr=192.168.158.121:35370 fd=26 name= age=53 idle=23 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=62238376 addr=192.168.158.126:46971 fd=57 name= age=19 idle=19 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=62238377 addr=192.168.158.126:46972 fd=119 name= age=19 idle=19 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=auth
id=62238265 addr=192.168.158.22:39153 fd=218 name= age=53 idle=23 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=60044809 addr=192.168.158.126:37533 fd=274 name= age=710634 idle=710634 flags=r db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=readonly
id=60044810 addr=192.168.158.126:37534 fd=275 name= age=710634 idle=710634 flags=r db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=readonly
id=9036409 addr=192.168.158.201:7003 fd=112 name= age=26273162 idle=0 flags=M db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=del
id=62238401 addr=192.168.158.37:57703 fd=214 name= age=13 idle=13 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=auth
id=62238431 addr=192.168.158.201:49564 fd=220 name= age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
6. 查看某个节点当前的连接数 info clients
[root@redis1 ~]# /usr/local/bin/redis-cli -h 192.168.0.113 -p 7002 -a 4eRv8u4QaZf info clients
# Clients
connected_clients:4191
client_recent_max_input_buffer:32774
client_recent_max_output_buffer:786456
blocked_clients:0
[root@redis1 ~]#
7. 查看某个节点内存信息 info memory
方式1:
[root@redis1 ~]# redis-cli -h 192.168.158.201 -p 7003 -c -a cBg756hQf35 info memory
# Memory
used_memory:2418984
used_memory_human:2.31M
used_memory_rss:10125312
used_memory_rss_human:9.66M
used_memory_peak:2515144
used_memory_peak_human:2.40M
total_system_memory:1021906944
total_system_memory_human:974.57M
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:865075200
maxmemory_human:825.00M
maxmemory_policy:noeviction
mem_fragmentation_ratio:4.19
mem_allocator:jemalloc-4.0.3
[root@redis1 ~]#
方式2:
登录集群 redis-cli -h 192.168.158.201 -p 7001 -c
查看内存 进入redis-cli命令行 info memory
192.168.158.201:7001> info memory
# Memory
used_memory:2458760
used_memory_human:2.34M
used_memory_rss:10043392
used_memory_rss_human:9.58M
used_memory_peak:2521512
used_memory_peak_human:2.40M
total_system_memory:1021906944
total_system_memory_human:974.57M
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:865075200
maxmemory_human:825.00M
maxmemory_policy:noeviction
mem_fragmentation_ratio:4.08
mem_allocator:jemalloc-4.0.3
192.168.158.201:7001>
8.查看集群某个节点的信息 info (相当于 info clients、info memory、info server等的汇总)
方式1:
[root@redis1 ~]# redis-cli -h 192.168.158.201 -p 7003 -c -a cBg756hQf35 info
# Server
redis_version:3.2.10
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:fdba0b16b2c26f2d
redis_mode:cluster
os:Linux 3.10.0-862.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.8.5
process_id:7582
run_id:577ff02d00b1e8e624a6d08152dbacb3bf7da5d3
tcp_port:7003
uptime_in_seconds:6643560
uptime_in_days:76
hz:10
lru_clock:12665017
executable:/usr/local/bin/redis-server
config_file:/data/redis_data/7003/redis.conf
# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
# Memory
used_memory:2419960
used_memory_human:2.31M
used_memory_rss:10125312
used_memory_rss_human:9.66M
used_memory_peak:2515144
used_memory_peak_human:2.40M
total_system_memory:1021906944
total_system_memory_human:974.57M
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:865075200
maxmemory_human:825.00M
maxmemory_policy:noeviction
mem_fragmentation_ratio:4.18
mem_allocator:jemalloc-4.0.3
# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1589636534
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
aof_enabled:1
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:0
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_current_size:61
aof_base_size:0
aof_pending_rewrite:0
aof_buffer_length:0
aof_rewrite_buffer_length:0
aof_pending_bio_fsync:0
aof_delayed_fsync:0
# Stats
total_connections_received:164
total_commands_processed:76607
instantaneous_ops_per_sec:1
total_net_input_bytes:2908462
total_net_output_bytes:269779
instantaneous_input_kbps:0.05
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:5
sync_partial_ok:6
sync_partial_err:3
expired_keys:0
evicted_keys:0
keyspace_hits:204
keyspace_misses:1
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:117849
migrate_cached_sockets:0
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.158.202,port=7001,state=online,offset=110898,lag=0
master_repl_offset:110898
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:102261
repl_backlog_histlen:8638
# CPU
used_cpu_sys:235.73
used_cpu_user:37.95
used_cpu_sys_children:0.39
used_cpu_user_children:0.01
# Cluster
cluster_enabled:1
# Keyspace
db0:keys=1,expires=0,avg_ttl=0
[root@redis1 ~]#
方式2:
查看 192.168.158.201:7001 节点的信息
redis-cli -h 192.168.158.201 -p 7001 -c
192.168.158.201:7001> info
# Server
redis_version:3.2.10
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:fdba0b16b2c26f2d
redis_mode:cluster
os:Linux 3.10.0-862.el7.x86_64 x86_64
...
...
...
扩展:
info keyspace 数据库、key相关统计
eg:
--stat选项可以实时获取Redis的重要统计信息,虽然info命令中的统计信息更全,但是能实时看到一些增量的数据。
9. 测试redis某个连接是否处于活动状态(某个节点是否down掉) ping
如果返回PONG,说明该节点没有挂
[root@redis1 ~]# redis-cli -h 192.168.158.201 -p 7002 -c -a cBg756hQf35 ping
PONG
[root@redis1 ~]#
eg:
10. 列出集群某个节点下所有key
查看集群某个节点下所有的key (某个节点和其对应的主节点或从节点显示的keys是一致的)
方式1:
[root@redis1 ~]# redis-cli -h 192.168.158.202 -p 7001 -c -a cBg756hQf35 keys '*'
1) "user1"
[root@redis1 ~]# redis-cli -h 192.168.158.202 -p 7001 -c -a cBg756hQf35 keys "*"
1) "user1"
[root@redis1 ~]#
方式2:
11. 查询某个节点redis允许的最大连接数 config get maxclients
方式1:
[root@redis1 ~]# redis-cli -h 192.168.158.201 -p 7002 -c -a cBg756hQf35 config get maxclients
1) "maxclients"
2) "10000"
[root@redis1 ~]#
方式2:
[root@redis1 ~]# redis-cli -h 192.168.158.201 -p 7002 -c -a cBg756hQf35
192.168.158.201:7002> config get maxclients
1) "maxclients"
2) "10000"
192.168.158.201:7002> config get port
1) "port"
2) "7002"
192.168.158.201:7002> config get daemonize
1) "daemonize"
2) "yes"
192.168.158.201:7002> config get requirepass
1) "requirepass"
2) "cBg756hQf35"
192.168.158.201:7002> exit
[root@redis1 ~]#
12. 慢查询条数 slowlog len
方式1:
[root@redis1 ~]# redis-cli -h 192.168.158.201 -p 7002 -c -a cBg756hQf35 slowlog len
(integer) 3
[root@redis1 ~]#
方式2:
先登录进入redis命令行,然后
192.168.0.30:7001> slowlog len
(integer) 128
192.168.0.30:7001>
13.获取慢查询日志,可选n条 slowlog get n
方式1:
[root@redis1 ~]# redis-cli -h 192.168.158.201 -p 7002 -c -a cBg756hQf35 slowlog get 3
1) 1) (integer) 2
2) (integer) 1589636534
3) (integer) 420847
4) 1) "PSYNC"
2) "8be64527bf26dfc0b981d11e6cef526adeb3a768"
3) "99997"
2) 1) (integer) 1
2) (integer) 1585052762
3) (integer) 2088620
4) 1) "PSYNC"
2) "8be64527bf26dfc0b981d11e6cef526adeb3a768"
3) "73955"
3) 1) (integer) 0
2) (integer) 1583390948
3) (integer) 189352
4) 1) "PSYNC"
2) "8be64527bf26dfc0b981d11e6cef526adeb3a768"
3) "64014"
[root@redis1 ~]#
方式2:
先登录进入redis命令行,然后
192.168.0.30:7001> slowlog get 20
1) 1) (integer) 5369
2) (integer) 1587548400
3) (integer) 12397
4) 1) "SETEX"
2) "REQUEST_LIMIT:BD57B517618B4A169E36E22943991B61"
3) "5"
4) "\"1\""
2) 1) (integer) 5368
2) (integer) 1582883674
3) (integer) 12930
4) 1) "SETEX"
2) "REQUEST_LIMIT:FE7FBB30C0EF01C5EDF797261C807020"
3) "5"
4) "\"1\""
3) 1) (integer) 5367
2) (integer) 1582883614
3) (integer) 10037
4) 1) "SETEX"
2) "REQUEST_LIMIT:A708BDFDD89B03E9E8AFA6F25C1BBFB3"
3) "5"
4) "\"1\""
4) 1) (integer) 5366
2) (integer) 1582862540
3) (integer) 10600
4) 1) "SETEX"
2) "REQUEST_LIMIT:115F5666176B8152D363C1DB82C36299"
3) "5"
4) "\"1\""
5) 1) (integer) 5365
2) (integer) 1582430584
3) (integer) 18484
4) 1) "DEL"
2) "REQUEST_LIMIT:14AA2C3B738AC2811C97F4360043BA3D"
6) 1) (integer) 5364
2) (integer) 1582430299
3) (integer) 11509
4) 1) "SETEX"
2) "REQUEST_LIMIT:EEB630A7626FB3C7672B0D6792BB6E89"
3) "5"
4) "\"1\""
...
...
14. redis所有配置信息查询
方式1:
[root@redis1 ~]# redis-cli -h 192.168.158.201 -p 7002 -c -a cBg756hQf35 config get '*'
1) "dbfilename"
2) "dump.rdb"
3) "requirepass"
4) "cBg756hQf35"
5) "masterauth"
6) "cBg756hQf35"
7) "unixsocket"
8) ""
9) "logfile"
10) "/data/redis_data/7002/redis.log"
11) "pidfile"
12) "/var/run/redis_7002.pid"
13) "slave-announce-ip"
14) ""
15) "maxmemory"
16) "865075200"
17) "maxmemory-samples"
18) "5"
19) "timeout"
20) "0"
21) "auto-aof-rewrite-percentage"
22) "100"
23) "auto-aof-rewrite-min-size"
24) "67108864"
25) "hash-max-ziplist-entries"
26) "512"
27) "hash-max-ziplist-value"
28) "64"
29) "list-max-ziplist-size"
30) "-2"
31) "list-compress-depth"
32) "0"
33) "set-max-intset-entries"
34) "512"
35) "zset-max-ziplist-entries"
36) "128"
37) "zset-max-ziplist-value"
38) "64"
39) "hll-sparse-max-bytes"
40) "3000"
41) "lua-time-limit"
42) "5000"
43) "slowlog-log-slower-than"
44) "10000"
45) "latency-monitor-threshold"
46) "0"
47) "slowlog-max-len"
48) "128"
49) "port"
50) "7002"
51) "tcp-backlog"
52) "511"
53) "databases"
54) "16"
55) "repl-ping-slave-period"
56) "10"
57) "repl-timeout"
58) "60"
59) "repl-backlog-size"
60) "1048576"
61) "repl-backlog-ttl"
62) "3600"
63) "maxclients"
64) "10000"
65) "watchdog-period"
66) "0"
67) "slave-priority"
68) "100"
69) "slave-announce-port"
70) "0"
71) "min-slaves-to-write"
72) "0"
73) "min-slaves-max-lag"
74) "10"
75) "hz"
76) "10"
77) "cluster-node-timeout"
78) "5000"
79) "cluster-migration-barrier"
80) "1"
81) "cluster-slave-validity-factor"
82) "10"
83) "repl-diskless-sync-delay"
84) "5"
85) "tcp-keepalive"
86) "300"
87) "cluster-require-full-coverage"
88) "yes"
89) "no-appendfsync-on-rewrite"
90) "no"
91) "slave-serve-stale-data"
92) "yes"
93) "slave-read-only"
94) "yes"
95) "stop-writes-on-bgsave-error"
96) "yes"
97) "daemonize"
98) "yes"
99) "rdbcompression"
100) "yes"
101) "rdbchecksum"
102) "yes"
103) "activerehashing"
104) "yes"
105) "protected-mode"
106) "yes"
107) "repl-disable-tcp-nodelay"
108) "no"
109) "repl-diskless-sync"
110) "no"
111) "aof-rewrite-incremental-fsync"
112) "yes"
113) "aof-load-truncated"
114) "yes"
115) "maxmemory-policy"
116) "noeviction"
117) "loglevel"
118) "notice"
119) "supervised"
120) "no"
121) "appendfsync"
122) "everysec"
123) "syslog-facility"
124) "local0"
125) "appendonly"
126) "yes"
127) "dir"
128) "/data/redis_data/7002"
129) "save"
130) "900 1 300 10 60 10000"
131) "client-output-buffer-limit"
132) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"
133) "unixsocketperm"
134) "0"
135) "slaveof"
136) ""
137) "notify-keyspace-events"
138) ""
139) "bind"
140) "192.168.158.201"
[root@redis1 ~]#
方式2:
[root@redis1 ~]# redis-cli -h 192.168.158.201 -p 7002 -c -a cBg756hQf35
192.168.158.201:7002> config get *
1) "dbfilename"
2) "dump.rdb"
3) "requirepass"
4) "cBg756hQf35"
5) "masterauth"
6) "cBg756hQf35"
7) "unixsocket"
8) ""
9) "logfile"
10) "/data/redis_data/7002/redis.log"
11) "pidfile"
12) "/var/run/redis_7002.pid"
13) "slave-announce-ip"
14) ""
15) "maxmemory"
16) "865075200"
17) "maxmemory-samples"
18) "5"
19) "timeout"
20) "0"
...
...
15. 定位耗时操作 info commandstats
由于redis没有非常详细的日志,要想知道在redis实例内部都做了些什么是非常困难的。幸运的是redis提供了一个命令统计工具info commandstats
通过这个命令统计工具可以查看所有命令统计的快照,比如命令执行了多少次,执行命令所耗费的毫秒数(每个命令的总时间和平均时间)
[root@redis1 ~]# redis-cli -h 192.168.158.201 -p 7002 -c -a cBg756hQf35 info commandstats
# Commandstats
cmdstat_get:calls=115,usec=356,usec_per_call=3.10
cmdstat_set:calls=4,usec=288,usec_per_call=72.00
cmdstat_select:calls=4,usec=10,usec_per_call=2.50
cmdstat_keys:calls=4,usec=44,usec_per_call=11.00
cmdstat_scan:calls=18,usec=141,usec_per_call=7.83
cmdstat_dbsize:calls=18,usec=15,usec_per_call=0.83
cmdstat_auth:calls=67,usec=218,usec_per_call=3.25
cmdstat_ping:calls=19,usec=30,usec_per_call=1.58
cmdstat_type:calls=58,usec=162,usec_per_call=2.79
cmdstat_psync:calls=12,usec=2707584,usec_per_call=225632.00
cmdstat_replconf:calls=82457,usec=250240,usec_per_call=3.03
cmdstat_info:calls=25,usec=2903,usec_per_call=116.12
cmdstat_ttl:calls=21,usec=39,usec_per_call=1.86
cmdstat_pttl:calls=37,usec=44,usec_per_call=1.19
cmdstat_config:calls=13,usec=1809,usec_per_call=139.15
cmdstat_cluster:calls=19,usec=5153,usec_per_call=271.21
cmdstat_object:calls=111,usec=205,usec_per_call=1.85
cmdstat_client:calls=1,usec=159,usec_per_call=159.00
cmdstat_slowlog:calls=6,usec=198,usec_per_call=33.00
cmdstat_command:calls=7,usec=10393,usec_per_call=1484.71
[root@redis1 ~]#
16. redis自身性能压测
redis 自带了一个叫做 redis-benchmark 的工具来模拟N个客户端同时发出M个请求。(类似于Apache ab 程序)。
命令:
redis-benchmark -h 192.168.158.201 -p 7002 -c 20000 -n 50000
不需要输入密码。
参数详解:
-h 表示IP
-p 表示端口
-c 表示连接数, 或者说 多少个并发客户端
-n 表示请求数
-t 后面跟请求方式,如get
eg:
eg:
milliseconds 毫秒
parallel 并行
注意:如果只想看到最总的结果,可以带上参数-q
eg:
-q Quiet. Just show query/sec values。
查看redis-benchmark 工具用法和基准参数:
redis-benchmark -h
-----------------------------
参考链接:
redis的使用,以及耗时定位 https://www.jianshu.com/p/34eb9854a715
Redis系列之(一)——开发基础 https://www.jianshu.com/p/7b5a82d9cceb
redis压力测试工具----redis-benchmark https://www.cnblogs.com/lxs1314/p/8399069.html