什么是redis
Redis(Remote Dictionary Server) 是一个开源的内存数据存储系统,它可以用作数据库、缓存和消息中间件。它被设计成高性能、低延迟的键值存储系统,常用于加速应用程序的数据访问,特别是需要频繁读写的场景。总的来说,Redis的基本工作原理是将数据存储在内存中,并通过简单的文本协议与客户端进行通信,以提供高性能的数据存储和访问能力。
在读场景下,Server通常会先从redis中进行查询,如果查询不到,再从MySQL中读取。
在写场景下,Server通常会将记录写入MySQL,然后通过监听binlog,修改Redis。
为什么需要redis
- Mysql从单机演进出了集群,它的数据量增长快,读写压力不断增加
- 如果每次数据都从数据库里面查询,会产生很大的开销,性能低
- 数据分冷热,可以将热数据存储到内存中
Redis的数据结构
Redis的五种数据结构包括以下五种:
String:字符串类型List:列表类型Set:无序集合类型ZSet:有序集合类型Hash:哈希表类型
1. String
- string 是 redis 最基本的类型,最大能存储 512MB
- string 类型是二进制安全的。也就是说是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象
2. hash
- Redis hash 是一个 string 类型的 field 和 value 的映射表,适合用于存储对象。
3. list
- Redis 列表是简单的字符串列表,按照插入顺序排序。
4. set
- 集合是一个无序的字符串元素集合,支持添加、删除、查找等操作。
- 集合可以用于存储唯一的元素,也可以进行交集、并集等操作。
3.5. Sorted Set
- 有序集合类似于集合,但每个元素都关联着一个分数(score),用于排序元素。
- 有序集合通常用于实现排行榜、范围查找等功能。
- 使用
zadd key score member向有序集合添加内容,成功返回1,如果元素已经在集合中返回 0。