Redis个人笔记(一) 基础篇

目录

Redis的基础数据类型

String 

List

Set

Zset

Hash

Redis的高级数据类型 

bitmaps

geo

stream(不常用)

hyperloglog

Redis为什么那么快?

纯内存操作

特别的数据结构

单线程

IO多路复用

Redis如何持久化?

RDB

AOF


Redis的基础数据类型

        Redis的基础类型有种。

  • String 

        Redis的String(字符串)是最常用的数据类型,可以用来存储如字符串、整数、浮点数、图片(图片的base64编码或图片的路径)、序列化后的对象等。底层是用C语言自定义的SDS。

  • List

        List是一个有序的字符串集合,可以从两端压入和弹出数据。列表最多可存储2^32 - 1个元素。底层实现是由双向链表 + ZipList(压缩列表)实现的。

  • Set

        Set是一个无序集合并且里面的数据不能重复,适合去重和集合运算,Set的查找,插入和删除都是O(1)复杂度。

  • Zset

        Zset也是一个不能有重复元素的集合,但每个元素会关联一个score(分数),通过分数可以进行排序,Zset多应用于排行榜。底层使用跳跃表和哈希表实现的。

  • Hash

        Redis中的Hash是一种有哈希表和ZipList实现的,他的存储方式是field和value。类似于Java中的Map<String, Object>。Hash特别适合用于存储对象,如用户信息、商品详情等。

Redis的高级数据类型 

bitmaps

        bitmaps的值是和二进制一样的,就是只有0和1,可以把他想象成一排的开关。比如

key:zihen value:00011100000111,类似于这种。可以用于签到场景。

        命令:SETBIT zihenzzz 4 1 代表着把第四位变成 1。

geo

        Geo数据指的是与地理位置相关的数据。简单来说,就是关于“东西在哪里”的数据。它可以描述物体的位置、形状和关系,比如城市的坐标、商店的位置、路线的路径等等。

        有主要的三个要素,经度,纬度,和位置名称。

        GEOADD zihen 16.85118(经度) 27.1444(维度) zihen(位置名称) 

stream(不常用)

      这个不太常用,我也不太了解哈,直接用比较官方的话来说了,Redis 的 Stream 是一种强大的数据结构,用于实现消息队列和日志系统等功能。它在 Redis 5.0 中被引入,是一种持久化的消息传递系统,支持多个消费者和消费者组,能够高效地处理消息的发布、订阅和持久化。

hyperloglog

        hyperloglog是一个可以用于检查一个数据集里面有多少不重复的数据。比如

  • PFADD zihen(key) aaa(value1)  aab(value2) 。这是添加命令。
  • PFCOUNT zihen ,返回的就是2。

Redis为什么那么快?

纯内存操作

        Redis的数据都是存储于内存当中,相比于存储于磁盘当中,访问速度能更快。内存的读写速度远超过磁盘I/O。

特别的数据结构

        Redis的底层实现的数据结构都是为了快速读写而生的,比如SDS、跳跃表、ZipList等。保持大部分都能达到O(1)复杂度。

单线程

        Redis几乎所有的操作都是单线程,避免多线程带来的上下文切换。单线程模型使得Redis不需要考虑各种锁的问题,减少了性能消耗。但是持久化,异步删除等等是异步线程处理,但这不影响性能。

IO多路复用

        Redis 是一个高性能的内存数据库,其高性能的关键之一就是使用了 I/O 多路复用 技术。I/O 多路复用允许 Redis 同时处理多个客户端连接,而无需为每个连接创建一个独立的线程或进程,从而大大提高了系统的并发能力和资源利用率。

Redis如何持久化?

RDB

AOF


                        本文相关图片资源来自于网络中,如有侵权请联系删除!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值