Redis优化发起详解
1. 内存优化
1.1 内存配置
- 设置最大内存
- maxmemory 4gb
- 内存淘汰策略
- maxmemory-policy allkeys-lru
- 样本数量
- maxmemory-samples 5
复制代码 1.2 内存优化策略
- 数据结构优化
- 使用压缩列表(ziplist)
- 公道设置hash-max-ziplist-entries
- 使用整数集合(intset)存储整数
- 键值设计优化
- 避免内存碎片
- 设置合适的maxmemory
- 定期执行MEMORY PURGE
- 使用jemalloc内存分配器
2. 持久化优化
2.1 RDB优化
- 配置自动保存策略
- save 900 1
- save 300 10
- save 60 10000
- 压缩RDB文件
- rdbcompression yes
- 开启校验和
- rdbchecksum yes
复制代码 2.2 AOF优化
- 设置AOF策略
- appendonly yes
- appendfsync everysec
- 重写配置
- auto-aof-rewrite-percentage 100
- auto-aof-rewrite-min-size 64mb
复制代码 3. 网络优化
3.1 毗连优化
- 最大连接数
- maxclients 10000
- TCP keepalive
- tcp-keepalive 300
- 超时设置
- timeout 300
复制代码 3.2 网络配置优化
- /etc/sysctl.conf
- net.core.somaxconn = 2048
- net.ipv4.tcp_max_syn_backlog = 2048
复制代码
- 网络带宽优化
- 使用内网通讯
- 公道设置buffer巨细
- 启用TCP BBR算法
4. 下令优化
4.1 慢查询优化
- 设置慢查询阈值
- slowlog-log-slower-than 10000
- 慢查询记录数
- slowlog-max-len 128
复制代码 4.2 下令使用发起
- 避免使用伤害下令
- 批量操作优化
- 使用MGET/MSET
- 使用管道Pipeline
- 公道使用事务
5. 架构优化
5.1 主从架构优化
- 主节点配置
- min-slaves-to-write 1
- min-slaves-max-lag 10
- 从节点配置
- slave-serve-stale-data yes
- slave-read-only yes
复制代码 5.2 集群优化
- 集群配置
- cluster-node-timeout 5000
- cluster-migration-barrier 1
- cluster-require-full-coverage no
复制代码 6. 操作系统优化
6.1 系统参数优化
- /etc/sysctl.conf
- vm.overcommit_memory = 1
- vm.swappiness = 0
- net.core.somaxconn = 2048
复制代码 6.2 文件系统优化
- 调整文件描述符限制
- ulimit -n 65535
- 使用XFS或ext4文件系统
- 关闭atime更新
- mount -o noatime /dev/sda1 /data
复制代码 7. 应用层优化
7.1 客户端优化
- JedisPoolConfig config = new JedisPoolConfig();
- config.setMaxTotal(100);
- config.setMaxIdle(20);
- config.setMinIdle(10);
复制代码- jedis.configSet("timeout", "5000");
- jedis.configSet("tcp-keepalive", "300");
复制代码 7.2 业务优化发起
- 缓存策略优化
- 数据结构选择
- String:简单键值对
- Hash:对象属性
- List:队列操作
- Set:去重功能
- Sorted Set:排行榜
8. 监控优化
8.1 性能指标监控
- 监控命令
- redis-cli info | grep instantaneous_ops_per_sec
- redis-cli info | grep used_memory
- redis-cli info | grep connected_clients
复制代码 8.2 告警阈值设置
- 关键指标
- CPU使用率 > 80%
- 内存使用率 > 90%
- 毗连数 > maxclients的80%
- 慢查询数量突增
9. 开发规范
9.1 键值设计规范
- 命名规范
- 逾期时间规范
- 同一设置逾期时间
- 避免永久键
- 使用EXPIRE设置逾期
10. 运维优化
10.1 部署优化
10.2 备份策略
- 自动备份脚本
- #!/bin/bash
- redis-cli BGSAVE
- cp dump.rdb /backup/redis_$(date +%Y%m%d).rdb
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |