JohnNiang's Blog

Redis 简介

2020.01.10

概览

本篇博文主要是为了简单介绍 Redis

以下内容翻译自:https://redis.io/topics/introduction

介绍

Redis 是一个开源(BSD 许可)的,基于内存的数据结构存储,且被用作数据库,缓存和消息代理。

它支持数据类型有:strings、hashes、lists、sets、带有范围查询的 sorted sets、bitmaps、hyperloglogs、带有半径查询的 geospatial indexes 以及 streams。

Redis 内置了复制、Lua 脚本、LRU 剔除、事务以及不同级别的磁盘持久化,并通过 Redis Sentinel 和带有 Redis 集群的自动分区提供了高可用。

你可以对这些类型运行原子操作,比如:追加字符串;在 hash 中增加值;将一个元素插入列表中;计算集合的交集、并集和差集;获取有序的集合中最高排名的成员。

当然,为了能够达到出色的性能,Redis 使用的是内存数据集。根据你的需求,你也可以将数据集偶尔转储到磁盘上,或者将每条命令都附加到日志文件中来实现数据集的持久化。如果你仅需要一个功能丰富的网络内存缓存,你可以选择禁用持久化。

Redis 还支持主从异步复制、非常快的非阻塞优先同步,以及在网络拆分时具有部分重新同步的自动重连。

其他的功能包括:

  • 事务
  • 发布/订阅
  • Lua 脚本
  • 生存时间有限的键
  • 键的 LRU 剔除
  • 自动故障转移

最后,Redis 是由 ANSI C 语言编写而成,可在大多数 POSIX 系统(如 Linux、*BSD 和 OS X)无外部依赖运行。Redis 常在 Linux 和 OS X 系统中进行开发和测试,也非常建议使用 Linux 进行部署。Redis 也许可以在像 SmartOS 这样的 Solaris 驱动的系统中工作,但也仅仅是尽力而为。Windows 版本目前还没有官方支持。