本文将从Redis简介、Redis特性回顾、Redis安装、Redis典型应用场景四部分进行介绍Redis,读完本文,你将会对Redis的特性和功能有初步的了解。html
Redis是一个开源的(BSD许可)、速度很是快的非关系数据库(non-relational database),它能够存储键(key)与5中不一样数据类型的值(value)之间的映射(mapping)。了解Redis数据结构能够参考Redis数据结构和经常使用API。c++
谁在使用Redis?
git
Redis能读的速度是110000次/s,写的速度是81000次/s 。github
思考:Redis速度为何这么快?redis
其实,Redis的数据存储于内存中。有计算机方面基础知识的知道,从寄存器到硬盘,速度愈来愈慢,空间愈来愈大,价格愈来愈便宜,正以下面这张图所示:数据库
下面这张表更直观:编程
类型
|
每秒读写次数
|
随机读写延迟
|
访问带宽
|
内存
|
千万级
|
80ns
|
5GB
|
SSD盘
|
35000
|
0.1-0.2ms
|
100-300MB
|
机械盘
|
100左右
|
10ms
|
100MB左右
|
由于Redis数据存储于内存中,因此速度性能优于存储于硬盘的MySQL数据库。缓存
Redis全部数据保持在内存中,对数据的更新将异步保存到磁盘上。服务器
Redis拥有两种不一样形式的持久化方法,他们均可以用小而紧凑的格式将存储在内存中的数据写入硬盘:第一种持久化方法为时间点转储(point-in-time dump),转储操做既能够在“指定时间段内有指定数量的写操做执行”这一条件被知足时执行,又能够经过调用两条转储到硬盘命令中的任何一条来执行;第二种持久化方法将全部修改了的数据库的命令都写入一个只追加文件里面,用户能够根据数据的重要程度,将只追加写入设置为从不一样步、每秒同步一次或者每写入一个命令就同步一次。网络
Redis支持 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操做。
另外还有BitMap:位图;HyperLogLog:超小内存惟一值计数;GEO:地理信息位置。
Redis支持Java、PHP、Python、Ruby、Lua、Node Js等编程语言。
Redis支持发布订阅、Lua脚本、事务、pipeline(流水线)等功能。
Redis不依赖外部数据库;
Redis的全部操做都是原子性的,意思就是要么成功执行要么失败彻底不执行。
执行复制的从服务器会链接上主服务器,接收主服务器发送的整个数据库的初始副本;以后主服务器执行的写命令,都会被发送给全部链接着的从服务器去执行,从而实现实时更新从服务器的数据集。由于从服务器包含的数据会不断地进行更新,因此客户端能够向任意一个从服务器发送读请求,以此来避免对主服务器进行集中式的访问。
Redis-Sentinel(v2.8)支持高可用
Redis-Cluster(v3.0)支持分布式
$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz
$ tar xzf redis-5.0.3.tar.gz
$ cd redis-5.0.3
$ make MALLOC=libc
$ src/redis-server
下载地址:https://github.com/MSOpenTech/redis/releases。
下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹从新命名为 redis。
双击redis-server.exe便可启动:
若是想方便的话,能够把 redis 的路径加到系统的环境变量里,能够直接经过redis-server启动。
redis-server:Redis服务器
redis-cli:Redis命令行客户端
redis-benchmark:Redis性能测试工具
redis-check-aof:AOF文件修复工具
redis-check-dump:RDB文件检查工具
redis-sentinel:Sentinel服务器
1.修改redis.conf文件:修改daemonize为yes,即默认之后台程序方式运行。
经常使用配置:
daemonize -->是不是守护进程(no|yes) port --> Redis对外端口号 logfile -->Redis日志系统 dir -->Redis工做目录
2.而后使用redis.conf启动
cd redis-5.0.3/ ./redis-server /usr/local/redis-5.0.3/redis.conf
做为NoSQL数据库,Redis不适合交易场景,主要用来作数据分析、报表、数据挖掘、推荐、日志处理等非核心交易场景,如:
缓存系统
计数器:转发数、点赞数、播放数等
消息队列系统
排行榜
社交网络
实时系统