Redis特点:
- Redis 不仅可以将数据完全保存在内存中,还可以通过磁盘实现数据的持久存储;
- Redis 支持丰富的数据类型,包括 string、list、set、zset、hash 等多种数据类型,因此它也被称为“数据结构服务器”;
- Redis 支持主从同步,即 master-slave 主从复制模式。数据可以从主服务器向任意数量的从服务器上同步,有效地保证数据的安全性;
- Redis 支持多种编程语言,包括 C、C++、Python、Java、PHP、Ruby、Lua 等语言。
Redis 数据库没有“表”的概念,它通过不同的数据类型来实现存储数据的需求,不同的数据类型能够适应不同的应用场景,从而满足开发者的需求。
Redis架构:
分为两个部分:Redis服务端和Redis客户端。可以位于同一个或不同的计算机上。服务端相当于是“大脑”,能够把数据存储到内存中,起到管理数据的作用。
Redis优势:
- 性能极高:基于内存实现的数据存储,读取速度为110000次/s,写的速度为81000次/s;
- 多用途:可以用作缓存,消息队列,搭建Redis集群等;
- 命令提示功能:拥有强大的命令提示功能,使用方便,降低学习门槛;
- 可移植性:使用标准C语言编写,能在打部分的操作系统上运行,比如Linux,Mac,Solaris等。
Redis应用场景:
缓存一些需要经常被访问的热点信息,比如网站的首页经常被访问,需要将网站的首页缓存起来,从而降低网站的压力,减少页面访问的延迟时间。
数据库的存储方式分为两大类:基于硬盘存储和基于内存存储。硬盘存储的读写效率都比较低,Redis是基于内存存储,相比较于磁盘来说,读写速度要高出几个数量级。下表为Redis与其他常用的数据库的对比。
Redis与其他数据库对比
名称 类型 数据存储选项 附加功能 Redis 基于内存存储的键值非关系型数据库 字符串、列表、散列、有序集合、无序集合 发布与订阅、主从复制、持久化存储等 Memcached 基于内存存储的键值缓存型数据库 键值之间的映射 为提升性能构建了多线程服务器 MySQL 基于磁盘的关系型数据库 每个数据库可以包含多个表,每个表可以包含多条记录;支持第三方扩展。 支持 ACID 性质、主从复制和主主复制 MongoDB 基于磁盘存储的非关系文档型数据库 每个数据库可以包含多个集合,每个集合可以插入多个文档 支持聚合操作、主从复制、分片和空间索引
由于计算机的内存是十分珍贵的资源,Redis是基于内存进行实现数据存储,所以Redis不适合存储较大的文件或者二进制的数据,否则会出现错误,理论上Redis的每个key、value的大小不超过512MB。