目录
Redis介绍
remote dictionary server(redis) 是一个由Salvatore Sanfilippo 写的key-value存储系统。
Redis是一个完全开源免费的,是使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、高性能的key-value数据库,并提供多种语言的API。通常被称为数据结构服务器,因为值(value)可以是 字符串(String),哈希(Map),列表(list),集合(sets)和有序集合(sorted sets)等类型。
Redis是有名的Nosql数据库,一般Linux都会默认支持。但是在windows环境中,需要手动安装设置才能有效使用。在Windows环境下的安装下面会一一讲解,我这里学习也主要是以Windows为主,等涉及到Linux的时候自会补充。
Redis 与其它 key-value 缓存产品有以下三个特点:
- Redis 支持数据持久化,可以将内存中的数据保存到从盘中,重启的时候可以再次加载进行使用。
- Redis 不仅仅支持简单的 key-value 类型的数据。同时还提供list , set , zset , hash 等数据结构的存储。
- Redis 支持数据的备份,即 master-slave模式数据备份。
Redis的优点
- 性能高 - Redis 能读的速度是110000次/s,写的速度是81000次/s。
- 丰富的数据类型 - Redis 支持二进制案例的 String , Lists , Hashes , Sets及Ordered Sets数据类型操作。
- 原子 - Redis的所有操作都是原子性的,意思就是要么成功执行,要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,及原子性,通过MULTI 和 EXEC 指令包起来。
- 丰富的特性 - Redis 还支持publish/suscribe,通知,key 过期等等特性。
Redis 与其它key-value存储有什么不同
- Redis 有着更为复杂的数据结构,并且提供了对他们的原子性操作,这是一个不同于其它数据库的进化路径。Redis 的数据类型都是基于数据结构的同时对程序员透明,无需进行额外的抽象。
- Redis 运行在内存中,但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是:相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样 Redis 可以做很多内部复杂性很强的事情。同时,在磁盘格式方面,他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
Redis 的八大特性
- 速度快
Redis 使用C语言实现的;
Redis 的所有数据存储在内存中。
- 持久化
Redis 的所有数据存储在内存中,对数据的更新将异步地保存到磁盘上。
- 支持多种数据结构
Redis 支持五种数据结构:String , List , Set , Hash , Zset
- 支持多种编程语言
java , php , Python , Ruby , Lua , Node.js
- 功能丰富
除了支持物种数据结构之外,还支持事务、流水线、发布/订阅、消息队列等功能。
- 源码简单
约23000行C语言源代码。
- 主从复制
主服务器(master)执行添加、修改、删除,服从服务器执行查询。
- 高可用及分布式
Redis-Sentinel (v2.8)支持高可用
一台服务器挂掉会有另一台服务器立马顶上,Redis-Sentine监听所有的监听Redis主从服务器,一旦发现主服务器挂掉了,他会从若干服务器中选择一台新的机器作为master,其它从服务器会成为这台新master的从服务器。
Redis-Cluster (v3.0)支持分布式
在一台物理计算机上,把数据A放到数据库D1,把数据B放到数据库D2,把数据C放到数据库D3属于分布式,但由于数据库的访问连接池是有限的,所以这种分布式解决方案存在性能瓶颈;把数据A放到计算机C1的数据库D1,把数据B放到计算机C1的数据库D2,把数据C放到计算机C3的数据库D3也属于分布式,这种分布式解决方案扩展性好,如果系统增加了新业务X , X产生的数据Y可以放到计算机C4的数据库D4中,理论上来说这种方式可以无限扩展,从而保证系统的性能最大化。存在瓶颈且价格较高的高性能单台服务器-->可无限扩展的分布式集群
Redis 在window下安装
托管在GitHub上的下载地址:https://github.com/MSOpenTech/redis/releases。
Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我下载 Redis-x64-3.2.100.zip压缩包到 D 盘,解压后,将文件夹重新命名为 redis。 Redis-x64-3.2.100.msi的安装需要配置环境,其他操作也是一样的ÿ