假如您设置了主从复制情势,那么您最棒对复制的情景是或不是符合规律做一些监察,首若是对
info 输出中的 master_link_status 实行监督,借使这几个值是
up,那么申明同步平时,如若是
down,那么您将要潜心一下输出的其他一些诊断音信了。比方上面那个:

5. slowlog(查看redis慢查询)

Slow log 的作为由八个布局参数(configuration parameterState of Qatar内定,能够透过改写
redis.conf 文件或然用 CONFIG GET 和 CONFIG SET
命令对它们动态地举行修正。
首先个选项是 slowlog-log-slower-than
,它调控要对实行时间超过多少飞秒(microsecond,1秒 = 1,000,000
纳秒卡塔尔的查询进行记录。
比如施行以下命令将让 slow log 记录全数查询时间超过等于 100
微秒的查询:
CONFIG SET slowlog-log-slower-than 100
而以下命令记录全体查询时间超过 1000 飞秒的查询:
CONFIG SET slowlog-log-slower-than 1000
另二个采撷是 slowlog-max-len ,它决定 slow log 最多能保存多少条日志,
slow log 自个儿是三个 FIFO 队列,当队列大小超越 slowlog-max-len
时,最旧的一条日志将被删去,而最新的一条日志参加到 slow log
,就那样推算。
以下命令让 slow log 最多保存 1000 条日志:
CONFIG SET slowlog-max-len 1000
动用 CONFIG GET 命令能够查询三个选项的一时一刻值:

redis> CONFIG GET slowlog-log-slower-than
1) "slowlog-log-slower-than"
2) "1000"

redis> CONFIG GET slowlog-max-len
1) "slowlog-max-len"
2) "1000"

查看 slow log
要翻看 slow log ,能够采取 SLOWLOG GET 大概 SLOWLOG GET number
命令,前边叁个打字与印刷全数 slow log ,最大尺寸决议于 slowlog-max-len
选项的值,而 SLOWLOG GET number 则只打字与印刷内定数量的日志。
新型的日志会最先被打字与印刷:


为测量检验需求,将 slowlog-log-slower-than 设成了 10 皮秒

redis> SLOWLOG GET
1) 1) (integer) 12                      # 唯一性(unique)的日志标识符
   2) (integer) 1324097834              # 被记录命令的执行时间点,以 UNIX 时间戳格式表示
   3) (integer) 16                      # 查询执行时间,以微秒为单位
   4) 1) "CONFIG"                       # 执行的命令,以数组的形式排列
      2) "GET"                          # 这里完整的命令是 CONFIG GET slowlog-log-slower-than
      3) "slowlog-log-slower-than"

2) 1) (integer) 11
   2) (integer) 1324097825
   3) (integer) 42
   4) 1) "CONFIG"
      2) "GET"
      3) "*"

3) 1) (integer) 10
   2) (integer) 1324097820
   3) (integer) 11
   4) 1) "CONFIG"
      2) "GET"
      3) "slowlog-log-slower-than"

日志的唯蓬蓬勃勃 id 仅有在 Redis
服务注重启的时候才会重新载入参数,那样能够制止对日记的重新管理(比如你恐怕会想在历次发现新的慢查询时发邮件公告你State of Qatar。
翻看当前日记的数码
应用命令 SLOWLOG LEN 能够查看当前几日记的多寡。
请精心这几个值和 slower-max-len
的分别,它们三个是超越天记的数码,多少个是同意记录的最大日志的数额。

redis> SLOWLOG LEN
(integer) 14

清空日志
运用命令 SLOWLOG RESET 能够清空 slow log 。

redis> SLOWLOG LEN
(integer) 14
redis> SLOWLOG RESET
OK
redis> SLOWLOG LEN
(integer) 0

save 900 1

慢日志

2. config(能够查看redis配置属性值State of Qatar

语法:[config get xxx]
例如:

//查看timeout配置
127.0.0.1:6379> config get timeout
1) "timeout"
2) "600"
127.0.0.1:6379> 

风流浪漫律的还应该有config set [属性] [属性值] ,给钦赐属性值设置参数。

glueoutputbuf yes

Redis-audit 是三个本子,通过它,大家得以精通每少年老成类 key
对内部存款和储蓄器的使用量。它能够提供的数码有:某一类 key
值的访问频率怎么样,有稍许值设置了晚点时间,某后生可畏类 key
值使用内部存款和储蓄器的大小,那很有利让大家能排查哪些 key 不经常用也许压根不用。

1. info命令(能够查看Redis 服务器的各样音信和总括数值卡塔尔(قطر‎
# Server
redis_version:2.6.9
redis_git_sha1:00000000
redis_git_dirty:0
redis_mode:standalone
os:Linux 3.4.9-gentoo x86_64
arch_bits:64
multiplexing_api:epoll          # redis的事件循环机制
gcc_version:4.6.3
process_id:18926
run_id:df8ad7574f3ee5136e8be94aaa6602a0079704cc # 标识redis server的随机值
tcp_port:6379
uptime_in_seconds:120           # redis server启动的时间(单位s)
uptime_in_days:0                # redis server启动的时间(单位d)
lru_clock:321118                # Clock incrementing every minute, for LRU management TODO 不清楚是如何计算的

# Clients
connected_clients:3             # 连接的客户端数
client_longest_output_list:0    # 当前客户端连接的最大输出列表    TODO
client_biggest_input_buf:0      # 当前客户端连接的最大输入buffer TODO
blocked_clients:0               # 被阻塞的客户端数

# Memory
used_memory:573456              # 使用内存,单位B
used_memory_human:560.02K       # human read显示使用内存
used_memory_rss:1798144         # 系统给redis分配的内存(即常驻内存)
used_memory_peak:551744         # 内存使用的峰值大小
used_memory_peak_human:538.81K  # human read显示内存使用峰值
used_memory_lua:31744           # lua引擎使用的内存
mem_fragmentation_ratio:3.14    # used_memory_rss/used_memory比例,一般情况下,used_memory_rss略高于used_memory,当内存碎片较多时,则mem_fragmentation_ratio会较大,可以反映内存碎片是否很多
mem_allocator:jemalloc-3.3.1    # 内存分配器

# Persistence
##########################
# rdb和aof事redis的两种持久化机制
#
# rdb是通过配置文件设置save的时间的改动数量来操作
# 把上次改动后的数据达到设置的指标后保存到db
# 如果中间发生了crash,则数据会丢失
# 这种策略被叫做快照
#
# aof是持续的把写操作执行写入一个类似日志的文件
# 但是会影响应能
# 分为appendfsync always和appendfsync eversec
# 前者每次写操作都同步,数据安全性高,但是特别消耗性能
# 后者每秒同步一次,如果发生crash,则可能会丢失1s的数据
##########################
loading:0                       #
rdb_changes_since_last_save:0   # 自上次dump后rdb的改动
rdb_bgsave_in_progress:0        # 标识rdb save是否进行中
rdb_last_save_time:1366359865   # 上次save的时间戳
rdb_last_bgsave_status:ok       # 上次的save操作状态
rdb_last_bgsave_time_sec:-1     # 上次rdb save操作使用的时间(单位s)
rdb_current_bgsave_time_sec:-1  # 如果rdb save操作正在进行,则是所使用的时间
----------------------------
aof_enabled:0                   # 是否开启aof,默认没开启
aof_rewrite_in_progress:0       # 标识aof的rewrite操作是否在进行中
aof_rewrite_scheduled:0         # 标识是否将要在rdb save操作结束后执行
aof_last_rewrite_time_sec:-1    # 上次rewrite操作使用的时间(单位s)
aof_current_rewrite_time_sec:-1 # 如果rewrite操作正在进行,则记录所使用的时间
aof_last_bgrewrite_status:ok    # 上次rewrite操作的状态
-----------------------------
# 开启aof后增加的一些info信息
aof_current_size:0              # aof当前大小
aof_base_size:0                 # aof上次启动或rewrite的大小
aof_pending_rewrite:0           # 同上面的aof_rewrite_scheduled
aof_buffer_length:0             # aof buffer的大小
aof_rewrite_buffer_length:0     # aof rewrite buffer的大小
aof_pending_bio_fsync:0         # 后台IO队列中等待fsync任务的个数
aof_delayed_fsync:0             # 延迟的fsync计数器 TODO
-----------------------------

# Stats
total_connections_received:7    # 自启动起连接过的总数
total_commands_processed:7      # 自启动起运行命令的总数
instantaneous_ops_per_sec:0     # 每秒执行的命令个数
rejected_connections:0          # 因为最大客户端连接书限制,而导致被拒绝连接的个数
expired_keys:0                  # 自启动起过期的key的总数
evicted_keys:0                  # 因为内存大小限制,而被驱逐出去的键的个数
keyspace_hits:0                 # 在main dictionary(todo)中成功查到的key个数
keyspace_misses:0               # 同上,未查到的key的个数
pubsub_channels:0               # 发布/订阅频道数
pubsub_patterns:0               # 发布/订阅模式数
latest_fork_usec:0              # 上次的fork操作使用的时间(单位ms)
##########################
# pubsub是一种消息传送的方式,分为频道和模式两种
# 消息不支持持久化,消息方中断后再连接,前面的消息就会没了
# 频道是指通过SUBSCRIBE指定一个固定的频道来订阅
# 模式是指通过PSUBSCRIBE模式匹配来订阅相关的匹配给定模式的频道
##########################

# Replication
role:master                     # 角色
connected_slaves:1              # 连接的从库数
slave0:127.0.0.1,7777,online
-----------------------------
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:4
master_sync_in_progress:0       # 标识主redis正在同步到从redis
slave_priority:100
slave_read_only:1
connected_slaves:0

# CPU
used_cpu_sys:0.00           # redis server的sys cpu使用率
used_cpu_user:0.12          # redis server的user cpu使用率
used_cpu_sys_children:0.00  # 后台进程的sys cpu使用率
used_cpu_user_children:0.00 # 后台进程的user cpu使用率

# Keyspace
db0:keys=2,expires=0
db1:keys=1,expires=0

    硬盘存款和储蓄两种格局任选其豆蔻梢头: 1、save 为快速照相    2、aof 为持久化  

-Redis-rdb-tools

3. client list(实时查看已经成立的接连几日卡塔尔
127.0.0.1:6379> client list
id=13636 addr=10.1.60.25:57398 fd=106 name= age=28543 idle=6274 flags=N db=1 sub=0 psub=3 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=psubscribe
id=14071 addr=10.1.60.25:36923 fd=150 name= age=6342 idle=6 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=14116 addr=127.0.0.1:37037 fd=6 name= age=28 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
127.0.0.1:6379> 

列一下client list中对应的字段含义:

以下是域的含义:
addr : 客户端的地址和端口
fd : 套接字所使用的文件描述符
age : 以秒计算的已连接时长
idle : 【以秒计算的空闲时长】
flags : 客户端 flag
db : 该客户端正在使用的数据库 ID
sub : 已订阅频道的数量
psub : 已订阅模式的数量
multi : 在事务中被执行的命令数量
qbuf : 查询缓冲区的长度(字节为单位, 0 表示没有分配查询缓冲区)
qbuf-free : 查询缓冲区剩余空间的长度(字节为单位, 0 表示没有剩余空间)
obl : 输出缓冲区的长度(字节为单位, 0 表示没有分配输出缓冲区)
oll : 输出列表包含的对象数量(当输出缓冲区没有剩余空间时,命令回复会以字符串对象的形式被入队到这个队列里)
omem : 输出缓冲区和输出列表占用的内存总量
events : 文件描述符事件
cmd : 最近一次执行的命令
客户端 flag 可以由以下部分组成:
O : 客户端是 MONITOR 模式下的附属节点(slave)
S : 客户端是一般模式下(normal)的附属节点
M : 客户端是主节点(master)
x : 客户端正在执行事务
b : 客户端正在等待阻塞事件
i : 客户端正在等待 VM I/O 操作(已废弃)
d : 一个受监视(watched)的键已被修改, EXEC 命令将失败
c : 在将回复完整地写出之后,关闭链接
u : 客户端未被阻塞(unblocked)
A : 尽可能快地关闭连接
N : 未设置任何 flag
文件描述符事件可以是:
r : 客户端套接字(在事件 loop 中)是可读的(readable)
w : 客户端套接字(在事件 loop 中)是可写的(writeable)

万一开掘idle中对应的值比较高,表明redis的timeout属性设置十分。结合config
get
timeout查看一下逾期时间,假诺timeout为0,表达已经禁止使用掉该意义,就有望导致redis连接数不自由的主题素材。

 

-Redis-audit

一、命令集
  1. auth passwd 认证登入
  2. TIME 查看时间戳与飞秒数
  3. DBSIZE 查看当前库中的key数量
  4. BGREW奇骏ITEAOF 后台进程重写AOF
  5. BGSAVE 后台保存rdb快速照相
  6. SAVE 保存rdb快照
  7. LASTSAVE 上次保留时间
  8. SLAVEOF 设为slave服务器
  9. FLUSHALL 清空全部db
  10. FLUSHDB 清空当前db
  11. SHUTDOWN[“”|save|nosave] 断开连接,关闭服务器
  12. SLOWLOG 呈现慢查询
  13. INFO 彰显服务器音讯
  14. CONFIG GET 获取配置音讯
  15. CONFIG SET 设置配置消息
  16. MONITOCRUISER 张开调整台
  17. SYNC 主从一块
  18. CLIENT LIST 客商端列表
  19. CLIENT KILL 关闭有些客商端
  20. CLIENT SETNAME 为顾客端设置名字
  21. CLIENT GETNAME 得到顾客端名字

 

-Redis Live

二、几个比较常用的通令

 

Sentinel 是 Redis 自带的工具,它能够对 Redis
主从复制举办监察,并实现主挂掉之后的机动故障转移。在改动的历程中,它还是能被安插去奉行两个客户自定义的本子,在本子中大家就可以实现报告急察方通告等成效。

6. Redis-benchmark测试Redis性能
Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]

 -h <hostname>      Server hostname (default 127.0.0.1)
 -p <port>          Server port (default 6379)
 -s <socket>        Server socket (overrides host and port)
 -c <clients>       Number of parallel connections (default 50)
 -n <requests>      Total number of requests (default 10000)
 -d <size>          Data size of SET/GET value in bytes (default 2)
 -k <boolean>       1=keep alive 0=reconnect (default 1)
 -r <keyspacelen>   Use random keys for SET/GET/INCR, random values for SADD
  Using this option the benchmark will get/set keys
  in the form mykey_rand:000000012456 instead of constant
  keys, the <keyspacelen> argument determines the max
  number of values for the random number. For instance
  if set to 10 only rand:000000000000 - rand:000000000009
  range will be allowed.
 -P <numreq>        Pipeline <numreq> requests. Default 1 (no pipeline).
 -q                 Quiet. Just show query/sec values
 --csv              Output in CSV format
 -l                 Loop. Run the tests forever
 -t <tests>         Only run the comma-separated list of tests. The test
                    names are the same as the ones produced as output.
 -I                 Idle mode. Just open N idle connections and wait.

测量试验命令事例:
1、redis-benchmark -h 192.168.1.201 -p 6379 -c 100 -n 100000
九十多个冒出连接,100000个央求,检查测量检验host为localhost
端口为6379的redis服务器质量
2、redis-benchmark -h 192.168.1.201 -p 6379 -q -d 100
测量检验存取大小为100字节的数据包的性格
3、redis-benchmark -t set,lpush -n 100000 -q
只测量试验有些操作的性质
4、redis-benchmark -n 100000 -q script load
“redis.call(‘set’,’foo’,’bar’)”
只测量检验有个别数值存取的性格

测量检验结果剖析:

requests completed in 0.30 seconds
parallel clients
bytes payload
  keep alive: 1

0.11% <= 1 milliseconds
86.00% <= 2 milliseconds
90.12% <= 3 milliseconds
96.68% <= 4 milliseconds
99.27% <= 5 milliseconds
99.54% <= 6 milliseconds
99.69% <= 7 milliseconds
99.78% <= 8 milliseconds
99.89% <= 9 milliseconds
100.00% <= 9 milliseconds
33222.59 requests per second

====== PING_BULK ======
requests completed in 0.27 seconds
parallel clients
bytes payload
  keep alive: 1

0.93% <= 1 milliseconds
97.66% <= 2 milliseconds
100.00% <= 2 milliseconds
37174.72 requests per second

====== SET ======
requests completed in 0.32 seconds
parallel clients
bytes payload
  keep alive: 1

0.22% <= 1 milliseconds
91.68% <= 2 milliseconds
97.78% <= 3 milliseconds
98.80% <= 4 milliseconds
99.38% <= 5 milliseconds
99.61% <= 6 milliseconds
99.72% <= 7 milliseconds
99.83% <= 8 milliseconds
99.94% <= 9 milliseconds
100.00% <= 9 milliseconds
30959.75 requests per second

====== GET ======
requests completed in 0.28 seconds
parallel clients
bytes payload
  keep alive: 1

0.55% <= 1 milliseconds
98.86% <= 2 milliseconds
100.00% <= 2 milliseconds
35971.22 requests per second

====== INCR ======
requests completed in 0.14 seconds
parallel clients
bytes payload
  keep alive: 1

95.61% <= 1 milliseconds
100.00% <= 1 milliseconds
69444.45 requests per second

====== LPUSH ======
requests completed in 0.21 seconds
parallel clients
bytes payload
  keep alive: 1

18.33% <= 1 milliseconds
100.00% <= 1 milliseconds
48309.18 requests per second

====== LPOP ======
requests completed in 0.23 seconds
parallel clients
bytes payload
  keep alive: 1

0.29% <= 1 milliseconds
99.76% <= 2 milliseconds
100.00% <= 2 milliseconds
44052.86 requests per second

====== SADD ======
requests completed in 0.22 seconds
parallel clients
bytes payload
  keep alive: 1

2.37% <= 1 milliseconds
99.81% <= 2 milliseconds
100.00% <= 2 milliseconds
44444.45 requests per second

====== SPOP ======
requests completed in 0.22 seconds
parallel clients
bytes payload
  keep alive: 1

4.27% <= 1 milliseconds
99.84% <= 2 milliseconds
100.00% <= 2 milliseconds
44642.86 requests per second

====== LPUSH (needed to benchmark LRANGE) ======
requests completed in 0.22 seconds
parallel clients
bytes payload
  keep alive: 1

12.35% <= 1 milliseconds
99.62% <= 2 milliseconds
100.00% <= 2 milliseconds
46082.95 requests per second

====== LRANGE_100 (first 100 elements) ======
requests completed in 0.48 seconds
parallel clients
bytes payload
  keep alive: 1

0.01% <= 1 milliseconds
3.27% <= 2 milliseconds
98.71% <= 3 milliseconds
99.93% <= 4 milliseconds
100.00% <= 4 milliseconds
20964.36 requests per second

====== LRANGE_300 (first 300 elements) ======
requests completed in 1.26 seconds
parallel clients
bytes payload
  keep alive: 1

0.01% <= 2 milliseconds
0.14% <= 3 milliseconds
0.90% <= 4 milliseconds
7.03% <= 5 milliseconds
31.68% <= 6 milliseconds
78.93% <= 7 milliseconds
98.88% <= 8 milliseconds
99.56% <= 9 milliseconds
99.72% <= 10 milliseconds
99.95% <= 11 milliseconds
100.00% <= 11 milliseconds
7961.78 requests per second

====== LRANGE_500 (first 450 elements) ======
requests completed in 1.82 seconds
parallel clients
bytes payload
  keep alive: 1

0.01% <= 2 milliseconds
0.06% <= 3 milliseconds
0.14% <= 4 milliseconds
0.30% <= 5 milliseconds
0.99% <= 6 milliseconds
2.91% <= 7 milliseconds
8.11% <= 8 milliseconds
43.15% <= 9 milliseconds
88.38% <= 10 milliseconds
97.25% <= 11 milliseconds
98.61% <= 12 milliseconds
99.26% <= 13 milliseconds
99.30% <= 14 milliseconds
99.44% <= 15 milliseconds
99.48% <= 16 milliseconds
99.64% <= 17 milliseconds
99.85% <= 18 milliseconds
99.92% <= 19 milliseconds
99.95% <= 20 milliseconds
99.96% <= 21 milliseconds
99.97% <= 22 milliseconds
100.00% <= 23 milliseconds
5491.49 requests per second

====== LRANGE_600 (first 600 elements) ======
requests completed in 2.29 seconds
parallel clients
bytes payload
  keep alive: 1

0.01% <= 2 milliseconds
0.05% <= 3 milliseconds
0.10% <= 4 milliseconds
0.19% <= 5 milliseconds
0.34% <= 6 milliseconds
0.46% <= 7 milliseconds
0.58% <= 8 milliseconds
4.46% <= 9 milliseconds
21.80% <= 10 milliseconds
40.48% <= 11 milliseconds
60.14% <= 12 milliseconds
79.81% <= 13 milliseconds
93.77% <= 14 milliseconds
97.14% <= 15 milliseconds
98.67% <= 16 milliseconds
99.08% <= 17 milliseconds
99.30% <= 18 milliseconds
99.41% <= 19 milliseconds
99.52% <= 20 milliseconds
99.61% <= 21 milliseconds
99.79% <= 22 milliseconds
99.88% <= 23 milliseconds
99.89% <= 24 milliseconds
99.95% <= 26 milliseconds
99.96% <= 27 milliseconds
99.97% <= 28 milliseconds
99.98% <= 29 milliseconds
100.00% <= 29 milliseconds
4359.20 requests per second

====== MSET (10 keys) ======
requests completed in 0.37 seconds
parallel clients
bytes payload
  keep alive: 1

0.01% <= 1 milliseconds
2.00% <= 2 milliseconds
18.41% <= 3 milliseconds
88.55% <= 4 milliseconds
96.09% <= 5 milliseconds
99.50% <= 6 milliseconds
99.65% <= 7 milliseconds
99.75% <= 8 milliseconds
99.77% <= 9 milliseconds
99.78% <= 11 milliseconds
99.79% <= 12 milliseconds
99.80% <= 13 milliseconds
99.81% <= 15 milliseconds
99.82% <= 16 milliseconds
99.83% <= 17 milliseconds
99.84% <= 19 milliseconds
99.85% <= 21 milliseconds
99.86% <= 23 milliseconds
99.87% <= 24 milliseconds
99.88% <= 25 milliseconds
99.89% <= 27 milliseconds
99.90% <= 28 milliseconds
99.91% <= 30 milliseconds
99.92% <= 32 milliseconds
99.93% <= 34 milliseconds
99.95% <= 35 milliseconds
99.96% <= 36 milliseconds
99.97% <= 37 milliseconds
99.98% <= 39 milliseconds
99.99% <= 41 milliseconds
100.00% <= 41 milliseconds
27173.91 requests per second

参照文档:http://www.cnblogs.com/silent2012/p/4514901.html
http://www.runoob.com/redis/server-client-list.html
http://dba10g.blog.51cto.com/764602/1846068
http://blog.csdn.net/cxhgg/article/details/67640263

 

值得风姿浪漫提的是,Redis 的慢日志记录的时日,仅仅富含 Redis
本人对一条命令的进行时间,不蕴含 IO
的光阴,比方收受顾客端数据和发送客户端数据那个时刻。此外,Redis
的慢日志和其余数据库的慢日志有有些比不上,其它数据库临时冒出 100ms
的慢日志可能都相比健康,因为相通数据库都是四线程并发施行,有个别线程试行有个别命令的习性或然并无法表示全部品质,但是对
Redis
来讲,它是单线程的,后生可畏旦现身慢日志,恐怕就需求及时得到尊重,最佳去查一下具体是怎么样来头了。

4. client kill(杀掉某个连接)
CLIENT KILL 127.0.0.1:43501

hz 10  #Redis 调用当中等高校函授数来执行后台task,譬如关闭已经timeout连接,删除过期的keys并且永世不会被采访到的,实践作用依照 hz 前面包车型地铁值来明确。在Redis 相比空闲的时候,升高这一个值,能丰裕利用CPU,让Redis相应速度越来越快,可取范围是1-500 ,提出值为 1–100

主从复制

 

计划后生可畏致

redis的标准化新闻和总体性检验

-Sentinel

# 在slave和master同步后(发送psync/sync),后续的同盟是不是设置成TCP_NODELAY . 假若设置成yes,则redis相会併小的TCP包进而节省带宽,但会加多少年老成道延迟(40ms),变成master与slave数据分化等  假使设置成no,则redis master会马上发送同步数据,未有延迟

-Redis Faina

 

来自: ;

_____________________________________________________________________

Redis 提供了 SLOWLOG 指令来赢得前段时间的慢日志,Redis
的慢日志是一贯存在内部存款和储蓄器中的,所以它的慢日志成本并十分的小,在骨子里行使中,大家由此crontab 任务实行 SLOWLOG 命令来收获慢日志,然后将慢日志存到文件中,并用
Kibana 生成实时的习性图表来贯彻质量监察和控制。

    内定本机为master 

持久化

         例子:

Redis Faina 是由著名的图样分享应用 instagram 开拓的 Redis
监察和控制服务,其原理和 Redis Live 相通,都以对因而 MONITOWrangler 来做的。

#当有1w条keys数据被改动时,60秒刷新到disk叁遍

-Redis-sampler

 

 

#bind 127.0.0.1

澄清 Redis 中数据存款和储蓄布满是风度翩翩件很难的是,举个例子您想知道哪一类型的 key
值占用内部存款和储蓄器最多。上面是大器晚成对工具,能够帮助您对 Redis 的数目集实行解析。

save 60 10000

风度翩翩旦因为您的机械或 Redis 本身的主题素材招致 Redis
崩溃了,那么你唯生机勃勃的救生稻草大概正是 dump 出来的 rdb文件了,所以,对
Redis dump 文件举办监察也是很注重的。你能够经过对rdb_last_save_time
举行督察,了然你近来二回 dump
数据操作的年月,还足以因而对rdb_changes_since_last_save
实行监督来文化要是当时现身故障,你会放弃多少多少。

当您的key比相当的大时,能够思虑采纳一些非常办法将异常的大的key形成十分大的value,比方您能够酌量将key,value组合成一个新的value.

Redis 监察和控制最直接的点子自然正是行使系统提供的 info
命令来做了,你只须要实施下边一条命令,就能够获得 Redis 系统的景况报告。

#日志记录等第,有4个可选值,debug,verbose(暗中同意值),notice,warning

若果 Redis 使用的内存超过了可用的情理内部存款和储蓄器大小,那么 Redis 很大概系统会被
OOM Killer杀掉。针对那一点,你能够通过 info 命令对 used_memory 和
used_memory_peak
进行监察,为运用内部存款和储蓄器量设定阀值,并设定相应的报警机制。当然,报告急察方只是手腕,主要的是您得预先安插好,当内部存款和储蓄器使用量过大后,你应该做些什么,是消亡一些没用的冷数据,还是把
Redis 迁移到越来越强有力的机器上去。

 

监察和控制服务

 

Redis-sampler 是 Redis
小编开荒的工具,它经过采纳的办法,能够令你询问到近些日子 Redis
中的数据的光景类型,数据及遍布处境。

 

role:slavemaster_host:192.168.1.128master_port:6379master_link_status:downmaster_last_io_seconds_ago:-1master_sync_in_progress:0master_link_down_since_seconds:1356900595

    aof日志文件损坏,可用 Redis 随身带的 redis-check-aof 命令来修补原始文件:

Fork 性能

# redis-check-dump  用于地点数据库检查 

当 Redis 长久化数据到磁盘上时,它展销会开一次 fork 操作,通过 fork
对内部存款和储蓄器的 copy on write 机制最廉价的兑现内部存储器镜像。不过纵然内存是 copy on
write 的,不过虚构内部存款和储蓄器表是在 fork 的眨眼间间就供给分配,所以 fork
会产生主线程长时间的卡顿(结束全部读写操作),那几个卡马上间和当下 Redis
的内部存款和储蓄器使用量有关。日常 GB 量级的 Redis 举行 fork
操作的日子在微秒级。你能够透过对 info 输出的 latest_fork_usec
实行督察来打听近日三回 fork 操作招致了有个别日子的卡顿。

redis-cli get foo

内部存储器使用

 

Redis 扶持采纳 CONFIG SET
操作来贯彻运行实的构造更正,那很便利,但还要也会招致三个主题材料。便是经过那几个命令动态校正的配备,是不会同盟到你的安顿文件中去的。所以当您因为一些原因重启
Redis 时,你使用 CONFIG SET
做的布局订正就能够废弃掉,所以大家最棒确定保证在每一次使用 CONFIG SET
改过配置时,也把安顿文件一同相应地改掉。为了避防人为的失误,所以大家最佳对配置举办监察和控制,使用
CONFIG GET 命令来获取当前运营时的安插,并与 redis.conf
中的配置值进行对照,若是发掘两侧对不上,就运行报告急察方。

activerehashing yes    #重新哈希the main Redis hash table(the one mapping top-level keys to values卡塔尔(قطر‎,那样会省去越来越多的长空。

Redis-rdb-tools 跟 Redis-audit 功用雷同,区别的是它是通过对 rdb
文件进行解析来博取总括数据的。

Redis Live 是二个更通用的 Redis 监察和控制诉方案,它的原理是定期在 Redis 上实行MONITO福特Explorer 命令,来获取当前 Redis
当前正值实施的授命,并通过总括解析,生成web页面包车型客车可视化解析报表。

slowlog-log-slower-than 10000    #当某些需要实施时间(不包含IO时间)超过10000微妙(10纳秒),把央求记录在慢日志中 ,假诺为负数不使用慢日志,即便为0压迫记录各种指令。

redis-cli info

slave-read-only yes    

数据遍布

 

redis-cli

cd /usr/local/redis-2.6.10

# vm-enabled yes

# 极度详细redis的牵线

 

 

 

 

# masterauth <master-password> 当本机为从劳动时,设置主服务的连接密码

 

hash-max-ziplist-value 64    #非常小的hash可以经过某种特殊的不二等秘书诀张开编码,以节省大量的内部存款和储蓄器空间,大家钦命最大的条约数为512,各类条目款项标最大尺寸为64。

#后台存款和储蓄错误截至写。

 

rdbchecksum yes    

databases 16

 

cat testStr.txt | redis-cli -x set testStr   # 读取testStr.txt文件全数内容设置为testStr的值

    redis-faina( 是由Facebook 开采并开源的三个Redis 查询解析小工具,需安装python遭受。

#本地数据库寄存路线,暗中认可值为 ./

# maxmemory <bytes>

auto-aof-rewrite-percentage 100

Redis的query分析

 

#Redis暗中同意监听端口

 

# redis-benchmark  Redis质量测验工具,测验Redis在你的系统及您的配备下的读写质量

 

    redis-cli -p 6439 monitor  | head -n <NUMBER OF LINES TO ANALYZE> | ./redis-faina.py         

 

 

logfile stdout

 

auto-aof-rewrite-min-size 64mb    #Redis会将AOF文件最先的大大小小记录下来,要是当前的AOF文件的分寸扩大百分百况兼超过64mb时,就能自行触发Redis改写AOF文件到RDB文件中,借使auto-aof-rewrite-percentage为0表示撤废机关rewrite功能。

 

client-output-buffer-limit pubsub 32mb 8mb 60    #对此pubsub client,假使client-output-buffer一旦抢先32mb,又或然当先8mb持续60秒,那么服务器就能够立时断开客商端连接。

 

#当slave失去与master的连天,或正在拷贝中,假使为yes,slave会响应顾客端的号令,数据或许差异台仍旧还没数据,假诺为no,slave会再次回到错误”SYNC with master in progress”

当你的key不大而value极大时,使用VM的功能会相比好.因为如此节约的内部存款和储蓄器一点都不小.

apendfsync always|everysec|no    #调用fsync(卡塔尔(قطر‎写多少到硬盘中,always是每二遍写操作就即刻同步到日志中,everysec是每间距一秒强逼fsync,no是不调用fsync(卡塔尔(قطر‎,让操作系统本人调节什么日期同步。

# redis-cli  Redis命令行操作工具。当然,你也能够用telnet依照其纯文本公约来操作

################ VIRTUAL MEMORY ###########

 

# appendfsync always

list-max-ziplist-value 64    #同上。

########### Replication #####################

#是或不是作为医生和医护人员进度运维

hash-max-zipmap-entries 64

 

#### APPEND ONLY MODE ####

redis-server /etc/redis.conf

vm-max-threads 4

vm-max-threads这几个参数,能够安装访谈swap文件的线程数,设置极端不要当先机器的核数.假设设置为0,那么全数对swap文件的操作都是串行的.恐怕会以致比较长日子的延期,可是对数据完整性有很好的保险.

 

 

slave-priority 100

save 300 10

#履新日志文件名,默许值为appendonly.aof

#点名日志输出的文书名,默许值为stdout,也可设为/dev/null屏蔽日志

 

redis-cli -r 3 info    # 重复实施info命令三回

OK

redis-cli keys \*   # 查看全数键值消息

 

admin

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注