Redis初识

本文将从Redis简介、Redis特性回顾、Redis安装、Redis典型应用场景四部分进行介绍Redis,读完本文,你将会对Redis的特性和功能有初步的了解。html

Redis简介

Redis是什么?

Redis是一个开源的(BSD许可)、速度很是快非关系数据库(non-relational database),它能够存储键(key)与5中不一样数据类型的值(value)之间的映射(mapping)。了解Redis数据结构能够参考Redis数据结构和经常使用APIc++

谁在使用Redis
git

GitHubTwitterStack Overflow
阿里巴巴、百度、微博

Redis特性回顾

  • 速度快

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支持JavaPHPPythonRubyLuaNode Js等编程语言。

  • 功能丰富

Redis支持发布订阅、Lua脚本、事务、pipeline(流水线)等功能。

  • 简单

Redis不依赖外部数据库;

Redis的全部操做都是原子性的,意思就是要么成功执行要么失败彻底不执行。

  • 主从复制

执行复制的从服务器会链接上主服务器,接收主服务器发送的整个数据库的初始副本;以后主服务器执行的写命令,都会被发送给全部链接着的从服务器去执行,从而实现实时更新从服务器的数据集。由于从服务器包含的数据会不断地进行更新,因此客户端能够向任意一个从服务器发送读请求,以此来避免对主服务器进行集中式的访问。

  • 高可用、分布式

Redis-Sentinelv2.8)支持高可用

Redis-Clusterv3.0)支持分布式

 Redis安装

Linux安装(Centos 7为例

下载压缩包
$ 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
注意:请确保机器已经安装过gcc和gcc-c++,否则会有报错:
运行Redis服务器:
$ src/redis-server

Windows安装

下载地址:https://github.com/MSOpenTech/redis/releases

下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹从新命名为 redis。

双击redis-server.exe便可启动:

若是想方便的话,能够把 redis 的路径加到系统的环境变量里,能够直接经过redis-server启动。

 可执行文件说明

redis-serverRedis服务器

redis-cliRedis命令行客户端

redis-benchmarkRedis性能测试工具

redis-check-aofAOF文件修复工具

redis-check-dumpRDB文件检查工具

redis-sentinelSentinel服务器

启动方法和如何选择

直接启动:上面Centos 7的启动方式是直接启动
后台启动:

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
如何选择?
生产环境选择配置启动
单机多实例配置文件能够用端口区分开

 Redis典型使用场景

做为NoSQL数据库,Redis不适合交易场景,主要用来作数据分析、报表、数据挖掘、推荐、日志处理等非核心交易场景,如:

  • 缓存系统

  • 计数器:转发数、点赞数、播放数等

  • 消息队列系统

  • 排行榜

  • 社交网络

  • 实时系统

相关文章
相关标签/搜索