这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
前言
今天简单学习了一个开发中常用的工具redis,虽然还没来得及深入,但还要趁热打铁,把今天所学的内容记录下来。
什么是redis
redis其实跟主流的MySQL数据库一样都是DBMS,但MySQL是关系型数据库,而redis则是非关系型数据库(NoSQL)。
关系型数据库会将数据存入到磁盘当中,以此来实现数据的持久化;非关系型数据库又叫缓存数据库,因为它会将数据存储到缓存当中,当机器掉电,数据就随之消失。
使用场景
前面提到,关系型数据库和非关系数据库存储数据的位置分别是磁盘和缓存,所以通过它们访问数据的速度也有快慢之分;由于内存的I/O速度要比磁盘的I/O速度快一个数量级,所以我们会将经常访问的热点数据存储到缓存当中,以减小开销并且提升速度,例如排行榜、热搜榜、计数器等。
Redis的数据类型
- 5 种基础数据结构 :String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)。
- 3 种特殊数据结构 :HyperLogLogs(基数统计)、Bitmap (位存储)、Geospatial (地理位置)。
以上数据类型的详细介绍及操作都可翻阅官方手册进行详细深入地学习。
String类型
String类型是redis中非常基础且常用的数据类型。它将包含一个key,且一个key对应一个value。
List类型
List类型是一个存储了String类型的列表。
Set类型
Set类型是一个集合,它与List是相似的,它是一个无序列表。
Hash类型
它与C++和Java中的map类似,是一个存储了多个key-value的集合。
Zset类型
Zset类型与Set类型相似,但不会包含重复的元素。