1. 程式人生 > >redis性能優化之redis.cnf配置參數

redis性能優化之redis.cnf配置參數

gre tab 4.0 lock 多少 etc 避免 time 4.4

redis調優總結

1、相應的參數調優 加內存
2、redis使用結構調優
3、使用合理的數據類型
說明:redis存儲的數據為redis hash(字符映射表) 單key多字段結構。

1)調整配置文件中配置項的值(修改文件:redis.conf)
1)調整memory大小 redis.conf 中maxmemory 不需要配置(作為數據庫來使用) 需要配置(作為緩存來使用)
2)設置過期時間 expires 鍵值名稱 秒數 expires key 60 設置過期時間 為了騰出更多的空間

過期策略:
沒有設置key的過期時間,則使用 allkeys-lru lru算法
有設置key的過期時間,則使用 volatile-ttl ttl算法

3)設置redis允許處理的最大請求連接數,減少延遲時間
調整maxclients大小 為監控得出的數據1~1.5倍

4)其他參數
超過多少秒後,關閉空閑連接 TCP keepalive
關閉檢查數據庫數據的正確性 rdbchecksum off

5)調整持久化在線重寫方式
auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes aof-rewrite-incremental-fsync yes
max-size*max-total <硬盤大小

auto-aof-rewrite-percentage
auto-aof-rewrite-min-size
auto-aof-incremental-fsync yes

6)加大內存的大小,避免未知錯誤
overcommit_memory文件指定了內核針對內存分配的策略,其值可以是0、1、2。
0, 表示內核將檢查是否有足夠的可用內存供應用進程使用;如果有足夠的可用內存,內存申請允許;否則,內存申請失敗,並把錯誤返回給應用進程。
1, 表示內核允許分配所有的物理內存,而不管當前的內存狀態如何。
2, 表示內核允許分配超過所有物理內存和交換空間總和的內存
more /proc/sys/vm/overcommit_memory
vm.overcommit_memory=1

6)redis慢查詢日誌,單位微秒
redis配置中進行,
slowlog-log-slower-than 10000 (負數:禁用慢查詢,0:記錄執行命令,正數:大於該值則記錄執行命令)
slowlog-max-len 128 保持最新條數的慢查詢日誌

7)時間單位
秒(s)->毫秒(ms)->微秒(μs)->納秒(ns)


redis命令 info
"# Server
redis_version:3.2.8
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:39d8556c0694236f
redis_mode:standalone
os:Linux 2.6.32-431.el6.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.4.7
process_id:1863
run_id:ca9be02eda4d76e24fae00d38eadb901cafc8a2d
tcp_port:6379
uptime_in_seconds:7744909
uptime_in_days:89
hz:10
lru_clock:9071420
executable:/usr/local/bin/redis-server
config_file:/etc/redis/6379.conf

# Clients
connected_clients:2
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0

# Memory
used_memory:2629176
used_memory_human:2.51M
used_memory_rss:15454208
used_memory_rss_human:14.74M
used_memory_peak:4687293024
used_memory_peak_human:4.37G
total_system_memory:8238727168
total_system_memory_human:7.67G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:5.88
mem_allocator:jemalloc-4.0.3

# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1502204630
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:405913
total_commands_processed:13174626
instantaneous_ops_per_sec:0
total_net_input_bytes:11389773051
total_net_output_bytes:27637853903
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:281598
evicted_keys:0
keyspace_hits:3651658
keyspace_misses:583361
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:887
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:1399.92
used_cpu_user:1629.98
used_cpu_sys_children:59.56
used_cpu_user_children:129.99

# Cluster
cluster_enabled:0

# Keyspace
db0:keys=1078,expires=15,avg_ttl=52686270
db14:keys=1,expires=0,avg_ttl=0

redis性能優化之redis.cnf配置參數