![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 90
叫我峰兄
星光不问赶路人,干就完了!
展开
-
Redis与MySQL双写一致性如何保证?
四月份的时候,有位朋友去美团面试,他说被问到Redis与MySQL双写一致性如何保证? 这道题其实就是在问缓存和数据库在双写场景下,一致性是如何保证的?本文将跟大家一起来探讨如何回答这个问题。 谈谈一致性 一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。 强一致性:这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验好,但实现起来往往对系统的性能影响大 弱一致性:这种一致性级别约束了系统在写入成功后,不承诺立即可以读到写入的值,也不承诺多久之转载 2021-05-21 14:26:33 · 267 阅读 · 0 评论 -
Redis五种数据类型的底层实现
简介 Redis的五大数据类型也称五大数据对象;前面介绍过6大数据结构,Redis并没有直接使用这些结构来实现键值对数据库,而是使用这些结构构建了一个对象系统redisObject;这个对象系统包含了五大数据对象,字符串对象(string)、列表对象(list)、哈希对象(hash)、集合(set)对象和有序集合对象(zset);而这五大对象的底层数据编码可以用命令OBJECT ENCODING来进行查看。 redisObject结构 typedef struct redisObject { //转载 2021-05-14 13:55:06 · 297 阅读 · 0 评论 -
Redis的字符串的底层实现SDS
前言 Redis是使用C语言开发的,C语言又自己字符类型,但是Redis却没有直接使用C语言传统的字符串表示(以空字符串结尾的字符数组),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis 的默认字符串表示。 举个例子就是,如果客户端执行如下命令: 实际上在Redis内部创建了两个SDS,一个是名为“msg”的key的SDS,另一个是名为“hello world”的SDS。 SDS的定义 如果去查看源码,一个SDS的数据结构如下原创 2021-05-14 09:37:09 · 82 阅读 · 0 评论