Redis入门,看这一篇就够了

Redis简介:Redis 是完全开源免费的 , 遵守 BSD 协议 , 是一个高性能的 key - value 数据库 。
Redis的全称是 Remote Dictionary Server , 它是一款开源的高性能的NoSQL数据库 , 它可以用作数据库、缓存和消息队列 。
Redis 与 其他 key - value 缓存产品有以下三个特点:

  • Redis 支持数据持久化 , 可以将内存中的数据保存在磁盘中 , 重启的时候可以再次加载进行使用 。
  • Redis 不仅仅支持简单的 key - value 类型的数据 , 同时还提供 list , set , zset , hash 等数据结构的存储
  • Redis 支持数据的备份 , 即 master - slave 模式的数据备份
Redis优势:
  • 性能极高 – Redis 读的速度是 110000 次 /s, 写的速度是 81000 次 /s。
  • 丰富的数据类型 - Redis 支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作 。
  • 原子性 - Redis 的所有操作都是原子性的 , 意思就是要么成功执行要么失败完全不执行 。 单个操作是原子性的 。 多个操作也支持事务 , 即原子性 , 通过 MULTI 和 EXEC 指令包起来 。
  • 其他特性 - Redis 还支持 publish/subscribe 通知 , key 过期等特性 。
NoSQLNoSQL 最常见的解释是 non-relational , 非关系型数据库 , 还有一种说法是 Not Only SQL , 不仅仅是 SQL , NoSQL 仅仅是一个概念 , 泛指非关系型的数据库 , 区别于关系数据库 , 它们不保证关系数据的 ACID 特性 。 ACID 即
  • A (Atomicity) 原子性
  • C (Consistency) 一致性
  • I (Isolation) 独立性
  • D (Durability) 持久性
Redis 通过提供多种键值对的数据类型来适应不同场景下的存储需求 。
Redis 数据类型及主要应用场景:
Redis入门,看这一篇就够了文章插图
关于上表中的部分释义:
  1. 压缩列表是列表键和哈希键的底层实现之一 。 当一个列表键只包含少量列表项 , 并且每个列表项要么就是小整数 , 要么就是长度比较短的字符串 , Redis就会使用压缩列表来做列表键的底层实现
  2. 整数集合是集合键的底层实现之一 , 当一个集合只包含整数值元素 , 并且这个集合的元素数量不多时 , Redis就会使用整数集合作为集合键的底层实现
  • 字符串 - strings
string 字符串 是 Redis 中最简单的数据类型 , 它是与 Memcached 一样的类型 , 一个 key 对应一个 value , 这种 key/value 对应的方式称为键值对 。 字符串对很多例子都有用 , 例如缓存 HTML 片段和网页 。
  • 集合 - set
set 是集合 , 和我们数学中的集合概念相似 , 对集合的操作有添加删除元素 , 有对多个集合求交并差等操作 。 操作中 key 理解为集合的名字 。
  • 散列 - hash
hash 是一个键值 (key=>value) 对集合;是一个 string 类型的 field 和 value 的映射表 , hash 特别适合用于存储对象 。
  • 列表 - list
Redis 列表是简单的字符串列表 , 按照插入顺序排序 。 你可以添加一个元素到列表的头部(左边)或者尾部(右边) 。 list类型经常会被用于消息队列的服务 , 以完成多程序之间的消息交换 。
  • 有序集合 - zset
Redis zset 和 set 一样也是 string 类型元素的集合 , 且不允许重复的成员 。 当你需要一个有序的并且不重复的集合列表时 , 那么可以选择 sorted set 数据结构 。
应用场景:
Redis 的应用场景包括:缓存系统(“热点”数据:高频读、低频写)、计数器、消息队列系统、排行榜、社交网络和实时系统 。
Redis入门,看这一篇就够了文章插图


推荐阅读