# 第一章)初见redis

https://cachecloud.github.io/

网站持续更新Redis开发运维的相 关知识和经验

想要了解一个东西必须从以下方面入手。

  1. 前世今生
  2. 众多特性(实现原理是什么?)
  3. 典型应用场景
  4. 安装配置(怎么运维?)
  5. 如何好用(怎么用?)

# Redis简介

Redis是一种基于键值对(key-value)NoSQL数据库,与很多键值对数据库不同的是,Redis中的值可以是由string(字符串)hash(哈希) list(列表)set(集合)zset(有序集合)Bitmaps(位图)HyperLogLogGEO(地理信息定位)等多种数据结构和算法组成,因此 Redis可以满足很多的应用场景,而且因为Redis会将所有数据都存放在内存中,所以它的读写性能非常惊人。不仅如此,Redis还可以将内存的数据利用快照和日志的形式保存到硬盘上,这样在发生类似断电或者机器故障的时候,内存中的数据不会“丢失”。除了上述功能以外,Redis还提供了键过期发布订阅事务流水线Lua脚本等附加功能。总之,如果在合适的场景使用好Redis,它就会像一把瑞士军刀一样所向披靡。

# Redis前世今生

2008年,Redis的作者Salvatore Sanfilippo在开发一个叫LLOOGG的网站时,需要实现一个高性能的队列功能,最开始是使用MySQL来实现的, 但后来发现无论怎么优化SQL语句都不能使网站的性能提高上去,再加上自己囊中羞涩,于是他决定自己做一个专属于LLOOGG的数据库,这个就是 Redis的前身。后来,Salvatore Sanfilippo将Redis1.0的源码开放到GitHub上,可能连他自己都没想到,Redis后来如此受欢迎。

Redis官网 (opens new window)

Redis的作者Salvatore Sanfilippo (opens new window)

Redis1.0的源码 (opens new window)

# Redis特性

  1. 速度快
  2. 基于键值对的数据结构服务器
  3. 丰富的功能
  4. 简单稳定:1、整个项目代码量少。2、Redis使用单线程模型。3、Redis不需要依赖于操作系统中的类库(例如Memcache需要依赖 libevent这样的系统类库)。
  5. 客户端语言多
  6. 持久化
  7. 主从复制
  8. 高可用和分布式:高可用是redis2.8实现Redis Sentinel、Redis3.0版本正式提供了分布式实现Redis Cluster。
Last Updated: 10/9/2025, 6:27:38 AM