Redis 总览

2021/01/12 posted in  Redis

Redis 是一个开源的基于内存的数据存储结构,可以用作DataBase,Cache,Message Broker;Redis 提供数据结构有 string, hash, list, set, zset, bitmaps, hyperloglogs, geospatial indexe, streams ; Redis 具有内置的复制,Lua脚本,LRU逐出,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供高可用性;可以在数据结构上进行部分原子操作,如追加字符串,hash中递增值,set进行交集,并集,差集计算,在zset获取最高值;Redis 支持异步复制,快速的非阻塞同步,自动连接,在网络拆分中进行部分重新同步;以及事务、发布/订阅、Lua脚本、生存时间有限的键、LRU收回Key、自动故障转移。

Redis 特性

  1. 速度快 : 正常情况下,Redis执行命令非常快,官方给出的数据是读写性能可以达到 10万/秒,当然这取决于具体的物理环境,但是除去物理环境的差异,Redis还是有速度快的原因

    • Redis 的所有的数据都是放到内存中的
    • Redis 是使用C语言实现,相对执行速度会快一些
    • Redis 使用单线程架构,预防多线程可能引起的竞争问题
    • Redis 代码的注重性能
  2. 基于键值对的数据结构服务器 : Redis 中的值可以是字符串、哈希、链表、集合,有序集合以及位图,HyperLogLog,还有3.2 之后加入的GEO

  3. 丰富的功能 : 提供键值过期服务、提供发布订阅功能,支持Lua脚本,提供简单的事务、提供流水线

  4. 简单稳定 : 简单体现在源码少,使用单线程,不需要依赖操作系统的类库

  5. 客户端语言多

  6. 持久化 : Redis 提供了两种持久化方式RDB和AOF,可以通过两种策略将内存中的数据存到磁盘中

  7. 主从复制 : Redis 提供复制功能,实现多个Redis数据副本,是事项分布式的基础

  8. 高可用和分布式 : Redis 2.8版本 提供了高可用Redis Sentinel,保证节点故障转移和发现,Redis 3.0 提供了Redis Cluster 实现真正的分布式,提供高可用、读写和容量扩展




Redis 使用场景

  1. 缓存
  2. 排行榜系统
  3. 计算器应用
  4. 社交网络
  5. 消息队列


Redis 全景图景

两大维度,三大主线:两大维度值系统维度和应用维度;三大主线:高性能、高可用、高扩展

  1. 高性能主线 : 包括线程模型、数据结构、持久化、网络框架
  2. 高可靠主线 : 包括主从复制、哨兵机制
  3. 高可扩展主线 : 包括数据分片、负载均衡



Redis 问题画像