京东技术面:Redis如何实现快速查询的高效性?

2026-05-29 11:462阅读0评论SEO资讯
  • 内容介绍
  • 相关推荐

本文共计5897个文字,预计阅读时间需要24分钟。

京东技术面:Redis如何实现快速查询的高效性?

为什么Redis查询速度那么快呢?

1.因为它是内存数据库;

2.归功于它的数据结构;

3.Redis中是单线程(引入了多线程,但核心内存读写仍为单线程);

4.

为什么 Redis 比较快

Redis 中的查询速度为什么那么快呢?

1、因为它是内存数据库;

2、归功于它的数据结构;

3、Redis 中是单线程(引入了多线程,但核心内存读写仍为单线程);

4、Redis 中使用了多路复用。

Redis 中的数据结构

这里借用一张来自《Redis核心技术与实战》 Redis 中数据结构和底层结构的对应图片

1、简单动态字符串

Redis 中并没有使用 C 中 char 来表示字符串,而是引入了 简单动态字符串(Simple Dynamic Strings,SDS)来存储字符串和整型数据。那么 SDS 对比传统的字符串有什么优点呢?

先来看下 SDS 的结构

struct sdshdr {
// 记录 buf 数组中已使用字节的数量
// 等于 SDS 保存字符串的长度,不包含'\0'
long len;

// 记录buf数组中未使用字节的数量
long free;

// 字节数组,用于保存字符串
char buf[];
};

举个栗子:

使用 SDS 存储了一个字符串 hello,对应的 len 就是5,同时也申请了5个为未使用的空间,所以 free 就是5。

阅读全文

本文共计5897个文字,预计阅读时间需要24分钟。

京东技术面:Redis如何实现快速查询的高效性?

为什么Redis查询速度那么快呢?

1.因为它是内存数据库;

2.归功于它的数据结构;

3.Redis中是单线程(引入了多线程,但核心内存读写仍为单线程);

4.

为什么 Redis 比较快

Redis 中的查询速度为什么那么快呢?

1、因为它是内存数据库;

2、归功于它的数据结构;

3、Redis 中是单线程(引入了多线程,但核心内存读写仍为单线程);

4、Redis 中使用了多路复用。

Redis 中的数据结构

这里借用一张来自《Redis核心技术与实战》 Redis 中数据结构和底层结构的对应图片

1、简单动态字符串

Redis 中并没有使用 C 中 char 来表示字符串,而是引入了 简单动态字符串(Simple Dynamic Strings,SDS)来存储字符串和整型数据。那么 SDS 对比传统的字符串有什么优点呢?

先来看下 SDS 的结构

struct sdshdr {
// 记录 buf 数组中已使用字节的数量
// 等于 SDS 保存字符串的长度,不包含'\0'
long len;

// 记录buf数组中未使用字节的数量
long free;

// 字节数组,用于保存字符串
char buf[];
};

举个栗子:

使用 SDS 存储了一个字符串 hello,对应的 len 就是5,同时也申请了5个为未使用的空间,所以 free 就是5。

阅读全文