Redis 宝典 | 基础、高级特性与性能调优
作者:kelgon
链接:http://www.jianshu.com/p/2f14bc570563
來源:简书
本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。
之后在性能调优等方面进行更深入的介绍和指导。
概述
Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库、缓存服务或消息服务使
用。
Redis支持多种数据结构,包括字符串、哈希表、链表、集合、有序集合、位图、Hyperloglogs等。
Redis具备LRU淘汰、事务实现、以及不同级别的硬盘持久化等能力,并且支持副本集和通过Redis
Sentinel实现的高可用方案,同时还支持通过Redis Cluster实现的数据自动分片能力。
Redis的主要功能都基于单线程模型实现,也就是说Redis使用一个线程来服务所有的客户端请求,
同时Redis采用了非阻塞式IO,并精细地优化各种命令的算法时间复杂度,这些信息意味着:
Redis是线程安全的(因为只有一个线程),其所有操作都是原子的,不会因并发产生数据异
常
Redis的速度非常快(因为使用非阻塞式IO,且大部分命令的算法时间复杂度都是O(1))
使用高耗时的Redis命令是很危险的,会占用唯一的一个线程的大量处理时间,导致所有的请
求都被拖慢。(例如时间复杂度为O(N)的KEYS命令,严格禁止在生产环境中使用)