Redis基本数据类型&性能指标

Redis支持五种数据类型:

  1. string(字符串)
  2. hash(哈希)
  3. list(列表)
  4. set(集合)
  5. zset(sorted set:有序集合)

String(字符串)

  • redis最基本的类型,几乎与Memcached 一模一样的类型,key => value
  • string 是二进制安全的,就是说可以包含任何数据,比如图片或者序列化的对象
  • string最大能存储512MB

Hash (哈希)

  • Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象
  • Redis 中每个 hash 可以存储 232 – 1 键值对(40多亿)

List(列表)

  • Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
  • 列表最多可存储 232 – 1 元素 (4294967295, 每个列表可存储40多亿)。

Set (集合)

  • Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
  • Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
  • 集合中最大的成员数为 232 – 1 (4294967295, 每个集合可存储40多亿个成员)。

Sorted Set(有序集合)

  • Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
  • 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
  • 有序集合的成员是唯一的,但分数(score)却可以重复。
  • 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 – 1 (4294967295, 每个集合可存储40多亿个成员)。

性能指标

Redis 性能指标明细:

指标单位具体含义
redis.aof.buffer_lengthbytesAOF 缓冲区大小
redis.aof.last_rewrite_timeseconds上次 AOF 重写(rewrite)的持续时间
redis.aof.rewriteAOF 重写(rewrite)的次数
redis.aof.sizebytesAOF 当前文件大小(aof_current_size)
redis.clients.biggest_input_buf当前客户端连接的最大输入缓存
redis.clients.blockedconnections等待阻塞调用的连接数
redis.clients.longest_output_list当前客户端连接的最长输出列表
redis.cpu.syssecondsRedis 服务器消耗的系统 CPU
redis.cpu.sys_childrenseconds后台进程消耗的系统 CPU
redis.cpu.usersecondsRedis 服务器消耗的用户 CPU
redis.cpu.user_childrenseconds后台进程消耗的用户 CPU
redis.expireskeys已过期的 key 数量
redis.expires.percentpercent已过期的 key 百分比
redis.info.latency_msmillisecondsRedis info 命令的延迟
redis.key.length给定 key 中元素的数量
redis.keyskeysKey 的总数量
redis.keys.evictedkeys由于最大内存限制被驱逐(evict)的 key 的总数量
redis.keys.expiredkeys数据库中过期的 key 的总数量
redis.mem.fragmentation_ratiofractionsused_memory_rss 和 used_memory 的比率
redis.mem.luabytesLua 引擎使用的内存量
redis.mem.peakbytesRedis 使用的内存的峰值
redis.mem.rssbytes系统给 Redis 分配的内存
redis.mem.usedbytes已经被 Redis 分配的内存量
redis.net.clientsconnections连接的客户端数 (不包括 slaves)
redis.net.commandscommands服务器运行的命令数
redis.net.rejectedconnections被拒绝的连接数
redis.net.slavesconnections连接的 slave 数
redis.perf.latest_fork_usecmicroseconds最新 fork 的持续时间
redis.persistkeys持久化的 key 数(redis.keys – redis.expires)
redis.persist.percentpercent持久化的 key 的百分比
redis.pubsub.channels活跃的发布/订阅的频道数量
redis.pubsub.patterns活跃的发布/订阅的模式数量
redis.rdb.bgsave一个标志值,记录了服务器是否正在创建 RDB 文件,正在进行中是 1,否则是 0
redis.rdb.changes_since_last上次后台保存后,RDB 的改动
redis.rdb.last_bgsave_timeseconds最近一次 bg_save 操作的持续时间
redis.replication.backlog_histlenbytes积压在同步缓冲区的数据量
redis.replication.delayoffsets复制延迟的偏移
redis.replication.last_io_seconds_agoseconds距离最近一次与主服务器行通信已经过去了多少秒钟
redis.replication.master_link_down_since_secondsseconds主从服务器连接断开了多少秒
redis.replication.master_repl_offsetoffsets从 master 报告的复制偏移量
redis.replication.slave_repl_offsetoffsets从 slave 报告的复制偏移量
redis.replication.sync一个标志值,如果同步正在进行,则为 1,否则为 0
redis.replication.sync_left_bytesbytes距离同步完成还剩多少数据量
redis.slowlog.micros.95percentilemicroseconds在慢日志中,查询报告的持续时间的第 95 百分位值
redis.slowlog.micros.avgmicroseconds在慢日志中,查询报告的持续时间平均值
redis.slowlog.micros.countqueries/second在慢日志中,报告的查询速率
redis.slowlog.micros.maxmicroseconds在慢日志中,查询报告的持续时间最大值
redis.slowlog.micros.medianmicroseconds在慢日志中,查询报告的持续时间中位值
redis.stats.keyspace_hitskeys在数据库中查找 key 成功的次数
redis.stats.keyspace_misseskeys在数据库中查找 key 失败的次数

持久化错误处理:

127.0.0.1:6379> config set stop-writes-on-bgsave-error no

或redis.conf设置参数

stop-writes-on-bgsave-error no(默认为yes)

发表评论

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