logo资料库

Redis性能优化培训.pptx

第1页 / 共39页
第2页 / 共39页
第3页 / 共39页
第4页 / 共39页
第5页 / 共39页
第6页 / 共39页
第7页 / 共39页
第8页 / 共39页
资料共39页,剩余部分请下载后查看
李伦兵 2019-05-20
目录 • Redis简介 • Redis特性 • Redis性能数据指标 • 常见性能问题分析 • 性能优化方案 • 性能测试
Redis简介 • Redis 是一个开源的高性能Nosql数据库,也是基于内存的Key-Value存储 系统,可以用作数据库、缓存和消息中间件 • 支持多种数据结构:字符串、哈希表、列表、集合、有序集合、位图、 Hyperloglogs • 内置了复制,LUA脚本, LRU数据淘汰,事务和不同级别的磁盘持久化等 功能 • 通过Sentinel哨兵和Cluster自动分片集群提供高可用性
Redis特性 • 基于单线程模型实现,一个线程服务所有客户端请求,采用非阻塞式 IO • 线程安全,所有操作都是原子的,不会因并发产生数据异常 • 速度非常快,大部分命令算法时间复杂度都是 O(1) • 使用高耗时 Redis 命令很危险,会占用唯一线程的大量处理时间,导致所 有的请求都被拖慢
Redis性能数据指标 • 通过Redis-cli命令行界面访问到Redis服务器,使用info命令获取丰富的 Redis性能数据指标 • info命令输出的数据可分为10个类别,分别是: server clients memory persistence stats replication cpu commandstats cluster keyspace
重要性能指标memory • 输入info memory命令,只返回与内存相关的数据 • 常用内存数据指标 1. used_memory:已使用内存 2. used_memory_rss:从操作系统上显示已经分配的内存总量 3. mem_fragmentation_ratio: 内存碎片率 4. used_memory_lua: Lua脚本引擎所使用的内存大小 5. mem_allocator: 在编译时指定的Redis使用的内存分配器,可以是libc、jemalloc、 tcmalloc 以上指标都是以字节(byte)为单位
重要性能指标CPU • used_cpu_sys:55.09 -- Redis服务器耗费的系统CPU • used_cpu_user:26.16 -- Redis服务器耗费的用户CPU • used_cpu_sys_children:0.02 --后台进程耗费的系统CPU • used_cpu_user_children:0.01 --后台进程耗费的用户CPU
重要性能指标Clients 记录了已连接客户端的信息 • connected_clients:1 --已连接客户端的数量(不包括通过从属服务 器连接的客户端) • client_longest_output_list:0 --当前连接的客户端当中,最长的输出列 表 • client_biggest_input_buf:0 --当前连接的客户端当中,最大输入缓存 • blocked_clients:0 --正在等待阻塞命令(BLPOP、BRPOP、 BRPOPLPUSH)的客户端的数量
分享到:
收藏