Redis介绍

介绍

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

为什么需要Redis

在传统时代,我们的数据都是直接从数据库读取的,那是因为并发量很小,如今,单机的读取已经无法满足我们的性能要求,而Redis的数据是存在内存里面的,操作内存远比操作磁盘性能高得多,因此,我们才需要Redis。

Redis优点

  1. 速度快,完全基于内存,每秒能读110000次,写81000次。
  2. 提供了丰富的数据类型,比如String、List、Set、ZSet、Hash等。
  3. 丰富的特性,比如支持key过期,发布订阅等

Redis知识点

  1. 五大基本数据类型和三大特殊数据类型
  2. 交集、并集、差集
  3. stream、发布订阅
  4. 键空间通知
  5. 持久化RDB和AOF
  6. 事物、管道、lua脚本
  7. 过期策略和内存淘汰机制
  8. 配置文件详解
  9. 安装
  10. 集群,比如主从、哨兵和分片
  11. 缓存雪崩、缓存穿透、缓存击穿
  12. 布隆过滤器
  13. 分布式锁、乐观锁
  14. 命令总结
  15. Jedis和整合SpringBoot
  16. 各种应用场景实战

五大基本数据类型和三大特殊数据类型

1、String

最常见也是最基本的数据类型,一个键对应一个值,String可以包含任何数据,包含图片(二进制)或者序列化的对象,长度最多为512M。

2、Hash

hash是一个由多个键值对组成的数据类型,因此Hash更适合去存储对象,Redis 中每个 hash 可以存储 2的32次方 - 1 个键值对(40多亿)。

3、List

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)

4、Set

Set 是 String 类型的无序集合,不允许重复数据,Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1),集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

5、ZSet

Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

6、HyperLogLog

HyperLogLog是用来做基数统计的算法,优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。

7、GeoHash

GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增

8、BitMap

Bitmap实际上就是String类型,通过最小的单位bit来进行0或者1的设置,表示某个元素对应的值或者状态。

一个bit的值,或者是0,或者是1。redis 字符串最大值为512M,所以bigmap最大值为:4294967295

应用场景

  • String:存短信验证码、缓存、计数器、分布式session
  • Hash:存储对象
  • List:发布订阅等
  • Set:共同好友、点赞或点踩等
  • Zset:排行榜
  • HyperLogLog:在线用户数、统计访问量等
  • GeoHash:同城的人、同城的店等
  • BitMap:签到打卡、活跃用户等

你可能感兴趣的:(Redis,redis)