文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Redis数据库

2015-01-28 16:11

关注

Redis数据库[数据库教程]

Redis数据库

Redis将数据库结构保存在RedisServer数据结构中的db数组中,数组大小由RedisServer结构中的dbnum决定,dbnum的默认大小为16。结构如下:

class RedisServer {
    
    int dbnum;
    
    RedisDb[] db;
}

而对于客户端而言,会选择一个指定的数据库,可以通过select命令来切换数据库,目标数据库保存在redis客户端数据结构RedisClient的db指针中。

class RedisClient {
    RedisDb db;
}

RedisDb

Redis是一个K-V数据库,RedisDb中的dict字典保存了数据库中的所有键值对,这个字典被称作键空间。键空间的key是Redis字符串对象,value是RedisObject对象。此外还有expire字典保存了键空间中所有键的过期时间,expire的key是键空间中的key,value是保存的过期时间。

class RedisDb {
    // 键空间
	Dict dict;
    // 键空间设置了过期时间的键的过期时间
    Dict expire;
}

当使用Redis命令对数据库进行读写时,会进行一些额外操作

通过pexpireat命令可以设置对Key过期时间(此外还有expire、expireat、pexpire命令,但底层实现都是pexpireat),过期时间由expire属性保存,通过过期时间和当前时间对比,可以判断键是否过期。此外,可以使用persist命令来移除键的过期时间。

过期键的删除策略

过期键一共由以下三种删除策略,其中第一种为被动删除策略,另外两种是主动删除策略。

  1. 惰性删除。即只在获取键值的时候检查是过期,如果过期则删除键。优点是CPU友好,但因为过期键不访问一直存在原因浪费内存
  2. 定时删除。设置键过期的时候,创建计时器(timer),让定时器来执行删除。优点是及时快速,缺点是删除时会消耗CPU资源,对大量过期加上大量访问不友好,减少了吞吐量。
  3. 定期删除。每隔一段时间删除过期键,删除多少和检查几个数据库由算法决定。上面两种方案的折中策略,需谨慎设置执行策略。

AOF和RDB对过期键的处理

  1. RDB生成RDB文件时,过期Key不会被持久化到RDB文件中。读取RDB文件时,主服务器会对RDB文件中的过期Key进行检查,如果Key过期将不被载入,从服务器则全部载入不进行检查,当主从同步时,已删除的键将被同步。
  2. AOFAOF写入时,已过期的但没有删除的不会对AOF产生任何影响,只有当键被删除了,才会显式的追加Key的Del命令。AOF重写时会对过期键进行检查。
  3. 复制:主服务器删除后会向从服务器发送Del命令同步键被删除。从服务器接受到客户端命令时,即使键已过期也会当作没过期处理。

数据库通知

通过订阅给定的频道或者模式来获知数据库的键的变化和命令执行情况。类似于MySQL监听Binlog。

Redis数据库

原文:https://www.cnblogs.com/ccoder/p/15240003.html

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯