天天看点

阿里资深专家聊Redis 6系列(01)——Redis简介

2014年,利用工作之余,我翻译了Redis 3非稳定版的官方文档,在网络上被大量转载、推荐和盗链。6年时光白驹过隙,Redis 6稳定版已经发布,增加了很多新特性,鉴于各种资料参差不齐,或陈旧或残缺或错误,于是抽空再倒腾下。

Redis是一款开源的(基于BSD许可)、基于内存的数据结构存储(in-memory data structure store),用作数据库(database)、缓存(cache)和消息代理(message broker)。Redis支持的数据结构,包括可按范围查询的字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(sorted set),可按半径查询的位图(bitmap)、超重对数(hyperloglog)和地理空间索引(geospatial indexes),以及流(stream)。Redis具有内置的复制、Lua脚本、LRU回收、事务、以及不同层次的磁盘持久化等功能,并且通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分片。

你可以在这些类型上面运行原子性操作,例如,追加字符串、递增哈希中的值、加入一个元素到列表、计算集合的交集、并集和差集,或者从有序集合中获取最高排名的元素。

为了满足高性能,Redis采用内存数据集。根据你的使用场景,你可以通过每隔一段时间转储数据集到磁盘,或者追加每条命令到日志文件。持久化也可以被禁用,如果你只是需要一个功能丰富、网络化的内存缓存。

Redis还支持主从异步复制,以非阻塞的方式进行快速的初次同步,当发生网络分隔(net split)时,自动重连并进行局部重同步。

其他特性还包括:

  • 事务
  • 发布/订阅
  • Lua脚本
  • 带TTL的键
  • 键按LRU回收
  • 自动故障转移(failover)

你可以通过大多数编程语言来使用Redis。

Redis是由ANSI C语言编写的,在无需额外依赖下,运行于大多数POSIX系统,如Linux、*BSD、OS X。Redis是在Linux和OS X两款操作系统下开发和充分测试的,我们推荐Linux为部署环境。Redis也可以运行在Solaris派生系统上,如SmartOS,但是支持有待加强。没有官方支持的Windows构建版本(微软开发和维护了一个64位Windows的版本)。   

牛仔很忙,毕业于华中科技大学,硕士研究生,校招加入腾讯,从事电子商务相关研发工作。连续两段创业经历后,最近一份经历,是阿里巴巴国际化中台深圳团队负责人,从事阿里电商中台架构、团队管理、双十一大促、稳定性等工作。

我的人生理想是,白天当一名中学老师,晚上当一名滴滴司机。

欢迎关注微信公众号:程序员阮威