Redis
文章平均质量分 64
啾啾猫咪
这个作者很懒,什么都没留下…
展开
-
如何手搓一个简易的Redis客户端(RESP协议原理及使用)
如何手搓一个简易的Redis客户端(RESP协议原理及使用)完整代码(已封装成模块包,可直接导入使用)Gitee:https://gitee.com/dpwgc/easy-go-redisGithub:https://github.com/dpwgc/easy-go-redis什么是RESP协议RESP是一个基于TCP的应用层协议,通过TCP传输数据并根据规则解析数据。Redis服务端与客户端之间就采用RESP通讯。RESP的优点简单、易读、二进制安全、解析速度快、可序列化多种类型的数据(原创 2022-02-19 00:45:59 · 675 阅读 · 0 评论 -
Redis为什么要设计成单线程的
Redis为什么要设计成单线程的因为Redis是基于内存存储数据的,它在插入数据的时候不需要像关系型数据库那样进行磁盘IO操作。在使用到磁盘IO的情况下,因为IO会导致当前线程阻塞,单线程程序会因为IO而频繁阻塞,在这种情况下多线程模型效率会更高。但是Redis中并没有频繁的磁盘IO操作,引入多线程反而会因为线程调度切换(上下文切换)影响性能。此外Redis也不是完全没有多进程,在进行AOF日志文件重做或者进行RDB持久化时,因为这两个操作都涉及磁盘IO,会阻塞当前线程。所以Redis会调用系统的for原创 2022-02-18 01:02:26 · 860 阅读 · 0 评论 -
Redis AOF与RDB知识点总结
Redis AOF与RDB知识点总结Redis拥有两种持久化方式:AOF与RDBAOFAOF的存储方式AOF是以写日志的方式记录每次写命令,客户端所执行的每一条写命令都将记入AOF日志,类似于MySQL binlog。AOF的数据恢复如果发生宕机重启的情况,Redis会通过顺序执行AOF日志中的所有写命令的方式来进行数据恢复(操作回放)。AOF与WAL的区别关系型数据库中大多使用WAL预写日志(写前日志),先写日志,再执行语句。而Redis的AOF是写后日志,先更新内存里的数据,再将这一条写原创 2022-02-13 02:41:40 · 270 阅读 · 0 评论 -
Redis五种数据类型的底层结构
Redis五种数据类型的底层原理string 字符串redis字符串的存储方式有两种:SDS(简单动态字符串)、直接存储(存储对象为整数时使用)string的编码:int、raw、embstr直接存储int:存储对象为整数时使用SDS存储raw:存储对象为长度大于32位的字符串时使用embstr:存储对象为长度小于等于32位的字符串时使用list 列表(队列)在redis 3.2之前,list底层采用ziplist(压缩列表)与linkedlist(双向链表)原创 2022-02-12 23:10:19 · 1385 阅读 · 0 评论