Redis
文章平均质量分 86
郑小源
一个不会敲代码,整天只会逗比的程序员
展开
-
手写Redis基本结构-动态字符串SDS
Redis中存字符串,是实际使用场景中最常用的方式,但是redis并没有直接使用C语言中传统的字符串表示,而是构建了一种名为简单动态字符串(SDS)的抽象类型,本文带你利用Java实现SDS基本结构。1、SDS定义我们首先看一下SDS的字符串的整体结构如下图:所以,我们首先创建一个包含free、len和char类型数组buf,代码如下:public class SDS { private static char endChar= '\0'; //字符串长度 private原创 2021-07-25 20:01:01 · 213 阅读 · 0 评论 -
Redis持久化之AOF文件
上篇博客中,我们介绍了RDB文件,RDB文件是保存了整个数据库中的键值对状态,这势必会导致文件每次SAVE或BGSAVE时,都会产生一次较大的RDB文件,因此Redis还提供了另外一种持久化方案,即AOF文件,通过保存Redis服务器所执行的写命令来记录数据库状态。一、AOF持久化的实现AOF持久化主要包括三个步骤:命令追加、文件写入、文件同步1.1 命令追加当AOF持久化功能打开时,服务器在执行一个写命令后,会议协议格式将被执行的写命令追加到服务器状态的aof_buf缓冲区的末尾;1.2 文件写原创 2021-07-13 22:14:07 · 540 阅读 · 0 评论 -
Redis持久化之RDB文件
我们知道,Redis之所以查询速度快,是因为其是一个基于内存的数据库,但是如果不将数据记录到磁盘上,当服务器出现故障或关机重启后,就会出现数据丢失的情况,这显然不是我们想要的,为了解决这个问题Redis提供了RDB持久化功能来避免数据的丢失。RDB是一个经过压缩的二进制文件,Redis通过手动或者自动执行,可以生成相对应的RDB文件,同时在进行数据还原时,可以通过解析RDB文件来还原数据库的状态。一、RDB文件怎么创建以及何时创建1.1 怎么创建Redis提供了两个命令来实现RDB文件的生成,分别是原创 2021-07-12 23:07:28 · 1186 阅读 · 1 评论 -
Redis过期时间及过期策略
一、基本命令Redis中我们可以通过EXPIRE和PEXPIRE来设置键的生存时间(TTL),通过命令,客户端可以经过指定的秒或者毫秒为精度,对数据库中的特定键设置生存时间;同样,我们可以通过EXPIREAT命令或者PEXPIREAT命令,以秒或者毫秒精度给数据的某个键设置过期时间(expire time),其中过期时间是一个UNIX时间戳,当某个键达到国企时间时,服务器会自动从数据库中删除该键;同时redis为我们提供了TTL和PTTL命令,用于返回某个键剩余的生存时间,也就是返回距离这个键被服原创 2021-07-04 15:31:59 · 4634 阅读 · 2 评论