Redis学习笔记一

本文介绍了Redis,一个广泛应用的开源内存数据存储系统,包括其主要数据类型的特点、用途和内部实现,以及Redis处理数据快速的原因。同时包含了一道关于Redis性能的面试题。
摘要由CSDN通过智能技术生成

1、来自Redis官方的描述:

Redis

The open-source, in-memory data store used by millions of developers as a cache, vector database, document database, streaming engine, and message broker.

通过阅读本文,我们知道:

redis 是一个被数百万开发人员用作缓存、矢量数据库、文档数据库、流媒体引擎和消息代理的开源内存数据存储。

2.常见数据类型的特点、用途和内部实现

string(字符串):普通字符串,最大存储量为512M。


▪应用场景:会话共享、分布式锁、计数器;

▪内部编码:int(8字节长整型);embstr(小于等于39字节字符串);raw(大于39个字节字符串)。


hash(哈希):散列结构,使用哈希函数来存取数据。


▪应用场景:缓存用户信息、保存电话号码等;

▪内部编码:ziplist(压缩列表) 、hashtable(哈希表)。


list(列表):按照插入顺序排序,可以有重复元素。


▪应用场景:消息队列,文章列表等;

▪内部编码:ziplist(压缩列表)、linkedlist(链表)。


set(集合):无序集合,没有重复元素。


▪应用场景:用户标签、随机数抽奖、在线人数统计等;

▪内部编码:intset(整数集合)hashtable(哈希表)。


sorted set/zset(有序集合):有序的字符串集合,同时元素不能重复。


▪应用场景:排行榜、用户点赞等;

▪底层内部编码:ziplist(压缩列表)skiplist(跳转表)。

3、面试题:

先来一道面试题:

1-1 Redis 处理数据的速度很快的原因是什么?

(1)redis的实现直接采用VM机制,有自己独特的底层模型、通信方式和应用协议。(黄婆卖瓜的)

(2)完全基于内存操作,处理速度非常快速。(回归正道)

(3)内部实现采用单线程来处理数据,避免了不必要的上下文切换和竞争条件,不存在多进程/线程而导致的CPU切换消耗问题 。(接近真理)

(4)使用多路 I/O 复用模型,非阻塞 IO操作。(来一个动作)

(5)数据结构简单,对数据操作也简单。(精彩时刻到了!收工!)

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值