1. Redis (Remote Dictionary Server)是一个完全开源免费、遵守BSD协议、支持网络、可基于内存也可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis通常被称为数据结构化服务器,因为其值(Value) 可以是:字符串(String)、哈希(Map)、列表(List)、集合(sets)和有序集合(sorted sets) 等类型。
2. Redis的特点:
(1) Redis支持数据的持久化,可以将内存中的数据保存到磁盘中,重启的时候可以再次加载进行使用。
(2) Redis不仅仅支持简单的Key-Value类型的数据,同时还提供List、set、zset、hash等数据结构的存储。
(3) Redis支持数据的备份,即 master-slave 模式的数据备份。
注:master-slave模式,即主从设备模式,也叫做主仆模式;其核心思想是,基于分而治之的思想,将一个原始任务分解为若干个语义等同的子任务,并由专门的工作线程来秉性执行这些任务,原始任务的结果是通过整合各个子任务的处理结果形成的。
该模式主要的使用场景有:
** 并行计算,以提升计算性能;
** 容错处理,以提升计算的可靠性;
** 计算精度,以提高计算的精确程度;
3. Redis独特的键值对模型:
很多数据库只能处理一种数据结构,例如:
SQL 数据库,处理表格类数据;
Memcached,处理键值对数据,但是键和值都是字符串;
文档数据库(CouchDB, MongoDB),由JSON/BSON组成的文档(Document)而一旦数据库提供的数据结构不合适去做某一件事的话,程序写起来就会不自然、很麻烦。
Redis也是键值对数据库,但是和Memcached不同的是,Redis的值不仅可以是字符串,而且还可以是列表、散列、集合、有序集合、HyperLogLog的其中任意一种。
4. Redis的附加功能:
① 持久化功能:将存储在内存中的数据保存到硬盘中,保障数据安全,方便进行你数据备份和恢复;
② 发布与订阅功能:将消息同时分发给多个客户端,用于构建广播系统;
③ 过期键功能:为键设置一个过期时间,让它在指定的时间之后自动被删除;
④ 事务功能:原子地执行多个事务,并提供乐观锁功能,保证处理数据时的安全性;
⑤ 脚本功能:在服务器端原子地执行多个操作,完成复杂的功能,并减少客户端与服务器之间的通信往返次数;
⑥ 复制:为指定的Redis服务器创建一个或者多个复制品,用于提升数据安全性,并分担请求的负载;
⑦ Sentinel:监控Redis服务器的状态,并在服务器发生故障时,进行自动故障转移;
⑧ 集群:创建分布式数据库,每个服务器分别执行一部分写操作和读操作。
5. Redis和Memcached的比较:
① Memcached是多线程的,而Redis是单线程的;
② Memcached使用预分配内存池的方式存储数据,而Redis使用现场申请内存的方式来存储数据的,并且可以配置虚拟内存;
③ Redis可以实现持久化,主从复制,实现故障恢复;
④ Memcached只是简单的key、value对,而Redis支持的数据类型比较多。
6. Redis下载及安装:
网上找到多处下载地址,但是都下载失败。最终在一百度盘找到下载地址:
链接:http://pan.baidu.com/s/1dFq4ETb 密码:8y5g
安装:将下载的压缩包进行解压;
复制解压文件夹到要存放安装文件的本地盘目录下;
配置环境变量:
测试Redis:按如下步骤,通过命令测试。
在不关闭以上命令窗口的情况下,开启另一个命令窗口,并通过:redis-cli ping 进行测试,如能得到:PONG,则安装、测试成功:
7. 通过命令窗口存取值: