清淨
  • Java

    • Java 基础
  • 框架

    • Flyway
    • MapStruct
    • Spring Cloud
  • 中间件

    • Elasticsearch
    • Redis
    • RabbitMQ
    • Kafka
  • 三剑客

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • jQuery
    • ECMAScript6
    • TypeScript
  • Vue

    • Vue2
    • Vue3
    • VuePress
  • Linux
  • Jenkins
  • Maven
  • MySQL
  • 插件工具
  • 代码集成
  • 其它

    • 数据结构与算法
    • 计算机网络
    • 操作系统
    • 设计模式
迁移日志
订阅号
微信订阅号
微信订阅号
GitHub
  • Java

    • Java 基础
  • 框架

    • Flyway
    • MapStruct
    • Spring Cloud
  • 中间件

    • Elasticsearch
    • Redis
    • RabbitMQ
    • Kafka
  • 三剑客

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • jQuery
    • ECMAScript6
    • TypeScript
  • Vue

    • Vue2
    • Vue3
    • VuePress
  • Linux
  • Jenkins
  • Maven
  • MySQL
  • 插件工具
  • 代码集成
  • 其它

    • 数据结构与算法
    • 计算机网络
    • 操作系统
    • 设计模式
迁移日志
订阅号
微信订阅号
微信订阅号
GitHub
  • Redis

    • 简介
    • 安装
    • Redis 配置
    • 数据类型
    • Lua 脚本
    • Java 客户端
    • 实战

      • 短信登录
      • 查询缓存
      • 缓存穿透
      • 缓存击穿
      • 缓存雪崩
      • 全局唯一 ID
      • 超卖问题
      • 一人一单
      • 分布式锁
      • Redisson
      • 异步秒杀
      • 消息队列
      • 签到(BitMap)
      • UV 统计
    • 持久化
    • 集群

      • 主从集群
      • 哨兵集群
      • 分片(Cluster)集群
    • 最佳实践

      • Key-Value 设计
      • 服务端配置
    • 底层数据结构

      • 动态字符串 SDS
      • IntSet
      • Dict
      • ZipList
      • QuickList
      • SkipList
      • RedisObject
    • 数据类型底层实现

      • String
      • List
      • Set
      • ZSet
      • Hash
    • 内存管理策略

简介

提示

Redis 官网

Redis 诞生于 2009 年,全称是 Remote Dictionary Server(远程词典服务器),是一个基于内存的键值型 NoSQL(Not Only SQL) 数据库。

Redis 是一个开源(BSD许可)的内存数据结构存储,可用作数据库、缓存、消息代理和流引擎。Redis 支持 strings、hashes、lists、sets、sorted sets with range queries、bitmaps、hyperloglogs、geospatial indexes、streams 等数据结构。Redis 内置支持复制(replication)、Lua脚本、LRU驱逐、事务和不同级别的磁盘持久化,并通过 Redis Sentinel 和 Redis Cluster 提供高可用性和自动分区。

你可以在这些类型上进行原子操作,比如追加字符串;递增哈希值;将元素压入 list;计算集合的交、并、差;或者得到排序集合中排名最高的元素。

为了达到最佳性能,Redis 使用内存中的数据集。根据您的使用情况,Redis 可以通过定期将数据集转储到磁盘或通过将每个命令附加到基于磁盘的日志来持久化您的数据。如果您只需要一个功能丰富、联网的内存缓存,也可以禁用持久化特性。

Redis 支持异步复制,具有快速的非阻塞同步和自动重连接。

Redis 还支持:

  • Transactions
  • Pub/Sub
  • Lua scripting
  • Keys with a limited time-to-live
  • LRU eviction of keys
  • Automatic failover

你可以在大多数编程语言中使用 Redis。

Redis 是用 C 编写的,可以在大多数 POSIX 系统上工作,如 Linux、*BSD 和 Mac OS X,没有外部依赖。Linux 和 OS X 是 Redis 开发和测试最多的两个操作系统,我们建议使用 Linux 进行部署。Windows 版本没有官方支持。

Redis 特征:

  • 键值(key-value)型,value 支持多种不同数据结构,功能丰富
  • 单线程,每个命令具备原子性
  • 低延迟,速度快(基于内存、IO 多路复用、良好的编码)
  • 支持数据持久化
  • 支持主从集群、分片集群
  • 支持多语言客户端

注意

Redis 是 single threaded(单线程)的,尽管从 Redis6 开始支持多线程,但是 Redis 的核心仍然是单线程的,多线程只是用来处理网络 IO,而不是用来处理命令的。

想要编辑此页?
上次更新: 2023/5/21 20:11
贡献者: Junfeng Dai
安装→
[ 纸上得来终觉浅绝知此事要躬行 ]
Copyright © 2021-present Junfeng Dai
蜀ICP备2021009537号