Redis 数据库

Posted 断水流大师兄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis 数据库相关的知识,希望对你有一定的参考价值。

1、redis.h / redisDB 结构?
2、通过redisClient实现 DB切换,通过每次都select db避免误操作
3、键空间操作实现redisDB操作。(SET、DEL、GET等常用)(FLUSHDB、RANDOMKEY、KEYS、DBSIZE、EXISTS等不常用)
4、键空间维护:

(1)hits命中次数、miss未命中次数。

(2)LRU最后一次使用时间

4.1问题:redis在读取一个key并发现其已过期,会先删除这个key。删除过期key的方式之一?还有?

答:定时删除、定期删除、惰性删除即上述访问才会删除的策略
      
4.2问题:key被更新后会按设置发送通知。可用性?业务场景?
5、过期时间EXPIRE/PEXPIRE(秒/毫秒)、EXPIREAT/PEXPIREAT(时间戳/毫秒时间错)。保存在过期字典中(类似键空间保存了所有键值对)
5.1问题:永久有效的键值对有过期字典吗?没有
6、PERSIST:移除过期时间,TTL、PTTL:计算剩余生存时间
7、RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。
 对比 : AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。

选择 : RDB常用
8、数据库通知:
键空间通知(某个key执行了什么命令)

键事件通知(某个命令被什么key执行了)。

问题:什么是通知函数?后续章节有介绍,再补充

以上是关于Redis 数据库的主要内容,如果未能解决你的问题,请参考以下文章

jedis连接redis

Redis 学习 —— 数据类型及操作

Redis实现分布式锁(设计模式应用实战)

Redis实现分布式锁(设计模式应用实战)

超级有用的9个PHP代码片段

比较有用的php代码片段