redis实现原理,Redis 底层原理

作者头像
明月清风
回答于 2023-03-22 08:20:10 阅读 892
redis实现原理,Redis 底层原理

redis实现原理

1、Redis是一个key-value存储系统,它支持的value类型相对较多,包括string、list、set和zset,这些数据都支持push/pop/add/remove及交并补等操作,而且这些操作都是原子性的,在此基础上,redis支持各种不同方式的排序。

2、为了保证效率,数据是缓存在内存中的,Redis会周期性的把数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave同步

3、Redis支持丰富的数据类型,最为常用的数据类型主要有五种:String、Hash、List、Set和Sort Set,Redis通常将数据存储到内存中,或被配置为使用虚拟内存,Redis有一个很重要的特点就是它可以实现持久化数据,通过两种方式可以实现数据持久化,一是RDB快照方式,将内存中的数据不断写入磁盘, 二是使用类似MySql的AOF日志方式,记录每次更新的日志,前者性能较高,但是可能会引起一定程度的数据丢失,后者相反,Redis支持即将数据到多台子数据库上,这种特性提高读取数据性能非常有益

redis原子性实现原理

1、Redis的原子性实现主要依赖于两种机制:事务和乐观锁。

2、在Redis中,事务通过MULTI、EXEC、WATCH等命令实现。

3、它可以保证一组命令作为一个原子操作执行,即在事务执行过程中,Redis不会执行其他客户端发送的命令,以此保证了一组命令的原子性。

4、乐观锁则是通过CAS(Compare and Swap)操作实现。

5、它会在执行某些操作之前检查数据的版本号,如果数据没有被其他客户端修改,那么就执行操作并更新版本号。

6、否则,乐观锁会抛出异常,提示客户端需要重试。

7、通过事务和乐观锁这两种机制,Redis可以保证某些操作的原子性,从而保证了数据的一致性和可靠性。

Redis 底层原理

1、 第一种是RDB的方式来实现的持久化:

2、RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。

3、 第二种是AOF的方式来实现的

4、AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。

5、所以他是以增量的方式来进行持久化的(也就是说他是一点点的进行持久化的,不是一下子把所有数据都进行记录下来的),其实最终记录的就是这种的指令。

声明:图文来源于互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请联系网站客服,一经查实,本站将立刻删除。

最新推荐