redis试题按知识点归类(一)

Redis 面试题可以按照不同的知识点进行分类,以下是一些典型的分类方式以及每个分类下的样例题目:

一、基础理论

1.什么是 Redis?

(1)是一个开源的内存数据结构存储系统,用作数据库、缓存和消息传递系统。

2.Redis 的数据存储在哪里?

 (1)主要存储在内存

 (2)RDB、AOF持久化快照存在磁盘的一个文件

3.Redis 支持哪些数据结构?

(1)字符串(string):一个key-value键值对

(2)列表(list):链表,消息队列

(3)集合(set):无序集合,自动去重

(4)有序集合(sorted sets):有序集合,每个元素都有一个分数(Score)与之关联,可以按照分数进行排序

(5)散列(hash):一个键值对集合{key-value,key-value}

(6)位图(bitmaps):字符串类型的一种特殊用途,可以表示二进制数据

(7)超日志(hyperloglogs):用于基数统计的近似算法,可以用来估算集合中唯一元素的数量

(8)地理空间(geospatial):可以存储和查询地理空间数据,支持计算两个地理位置之间的距离,以及对地理位置进行半径查询

(9)流(stream):Redis 5.0 引入的新数据结构,用于消息传输,可以作为消息队列使用

(10)时间序列(time series):使用 Redis 来存储随时间变化的数据点,常用于监控和分析

(11)数据库(database):Redis 支持多个数据库,每个数据库都是一个包含多个键值对的容器

(12)发布/订阅(pub/sub):一种消息通信模式,允许客户端订阅一个或多个频道,接收其他客户端发布的消息。

二、数据类型与操作

1.如何使用 Redis 的字符串(String)?

SET key value

在 Go 语言中使用 go-redis 库的示例:

err := rdb.Set(ctx, "key", "value", 0).Err()
if err != nil {
    log.Fatal(err)
}

2.Redis 的列表(List)有什么特点?

(1)有序:列表中的每个元素都有其顺序,从左到右,或从右到左。

(2)双向队列:可以对列表的两端进行操作,即可以作为栈(stack)使用,也可以作为队列(queue)使用。

(3)阻塞操作:列表支持阻塞操作,当列表为空时,可以从列表中弹出元素的命令会阻塞直到有元素可弹出。

(4)原子性:列表的大多数操作都是原子性的,这意味着在多客户端并发访问时,列表的操作不会被打断。

(5)容量:列表可以存储任意数量的元素,不受固定容量限制。

(6)数据类型:列表中的每个元素都是字符串,但可以是二进制安全的,因此可以存储任意数据。

(7)遍历:可以对列表进行遍历,获取指定范围内的元素。

(8)删除操作:可以从列表中删除指定数量的与给定值相等的元素。

(9)数据结构:列表是链表结构,不是数组,这意味着列表的插入和删除操作非常快速,时间复杂度为 O(1)。

(10)可用作消息队列:由于列表支持阻塞弹出操作,它常被用作消息队列系统的消息存储。

(11)常用操作命令

  • LPUSH/RPUSH:在列表的左侧(LPUSH)或右侧(RPUSH)推入一个或多个元素。
  • LPOP/RPOP:移除并返回列表左侧(LPOP)或右侧(RPOP)的元素。
  • LRANGE:获取列表中指定范围内的元素。
  • LLEN:获取列表的长度。
  • LREM:从列表中移除指定数量的与给
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值