美文网首页
Redis 数据库键空间

Redis 数据库键空间

作者: 杰哥长得帅 | 来源:发表于2019-02-06 15:46 被阅读20次

Redis 是一个键值对数据库服务器,服务器中每个数据库都由 redisDB 结构表示。其中,redisDB 结构的 dict 字典保存了数据库中所有的键值对,这个字典被称为键空间

键空间和用户所见的数据库是直接对应的:

  • 键空间的键就是数据库的键,每个键都是一个字符串对象
  • 键空间的值就是数据库的值,每个值是任意一种 Redis 对象

所有针对数据库的操作,比如 crud,实际上都是通过对键空间字典进行操作实现的

读写键空间时的维护操作

当使用 Redis 命令对数据库进行读写时,服务器不仅会对键空间执行指定的读写操作,还会执行一些额外的维护操作,其中包括:

  • 读取一个键后(读写操作都要对键进行读取),服务器会根据键是否存在来更新服务器的键空间命中(hit)次数或键空间不命中(miss)次数,这两个可以在 INFO stats 命令的 keyspace_hits 属性和 keyspace_misses 属性中查看
  • 在读取一个键后,服务器会更新键的 LRU 时间,这个值可以用于计算这个键的闲置时间,使用 OBJECT idletime <key> 命令可以查看
  • 如果服务器读取键后发现已经过期,就会先删除这个键,然后再执行其他操作
  • 如果由客户端使用 WATCH 命令监视某个键,那么服务器对被监视的键修改以后,会将这个键标记为 dirty,从而让事务程序注意到这个键已经被修改过
  • 服务器每次修改一个键后,都会对 dirty 键计数器的值增 1,这个计数器会触发服务器的持久化及复制操作
  • 如果服务器开启了数据库通知功能,那么对键修改之后,服务器将按配置发送
    相应的数据库通知

相关文章

  • Redis字典

    本文摘抄自redis阅读笔记 典在Redis中应用十分广泛,它是实现数据库的基础,特别的它是数据库键空间的实现方式...

  • Redis 数据库键空间

    Redis 是一个键值对数据库服务器,服务器中每个数据库都由 redisDB 结构表示。其中,redisDB 结构...

  • Redis键空间&过期键删除策略

    前言: 数据库键空间 Redis是一个键值对(key-value pair)数据库服务器,服务器中的每个数据库都由...

  • redis 单机数据库的实现

    数据库键空间 Redis 是一个键值对(key-value pair)数据库服务器, 服务器中的每个数据库都由一个...

  • redis-数据库

    dbnum默认值为16. 1. 数据库键空间 redis是一个键值对数据库服务器,每个数据库有一个redisDb结...

  • redis键空间

    。redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中。 每个re...

  • redis对象实现

    redis对象 Redis 使用对象来表示数据库中的键和值, 每次当我们在 Redis 的数据库中新创建一个键值对...

  • redis keyspace notification 键空间通

    概念 键空间通知指redis的每一个键被新建、修改或过期的通知通过pub/sub实现 配置 redis.conf中...

  • Redis读写期间键空间的维护

    当使用Redis命令对数据库进行读写时,服务器不仅会对键空间执行指定的读写操作,还会执行一些额外的维护操作。 读取...

  • Redis key键命令

    redis是基于key -- value 存储的 NoSQL 数据库,那么下面来看看关于key的键命令。 键命令 ...

网友评论

      本文标题:Redis 数据库键空间

      本文链接:https://www.haomeiwen.com/subject/tgzvsqtx.html