Redis入门到高可用(一)——初识Redis

一、Redis是什么

* 开源

* 基于键值的存储服务系统

* 支持多种数据结构

* 高性能,功能丰富

二、Redis特性

♦️ 概述

* 速度快

* 支持持久化

* 支持多种数据结构

* 支持多种编辑语言

* 功能丰富

* 简单(代码短小精悍,使用简单)

* 主从复制

* 高可用、分布式(主从复制是实现此的基础)

♦️ 特性详解

2.1 速度快

官方数据  10W OPS(operation per second)

为什么这么快?

1)绝大部分请求是纯粹的内存操作(非常快速)
2)采用单线程,避免了不必要的上下文切换和竞争条件
3)非阻塞IO
内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间
2.2 持久化
Redis所有数据保持在内存中,对数据的更新将异步地保存在磁盘上。
 
2.3 多种数据结构
Redis支持五种数据类型:string(字符串),hash Map(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
其他衍生 :
        BitMaps :位图
        HyperLogLog : 超小内存唯一值计数
    GEO :地理信息定位
 
2.4 支持多种客户端语言
Java、 PHP、python、Ruby、Lua、nodeJS等
 
2.5 功能丰富
* 发布订阅
* 事务
* Lua脚本
* pipeline
 
2.6  简单
*  代码量小
*  不依赖外部库
*  单线程模型
 
2.7 主从复制
redis中的(master/slave)主从复制,主机数据更新后根据配置和策略自动同步到备机的master/slaver机制,master以写为主,slaver以读为主。
作用:读写分离、容灾恢复
 
2.8 高可用、分布式
 
高可用 → v2.8版本(Redis-Sentinel)支持高可用
分布式 → v3.0版本(Redis-Cluster)支持分布式
 

三、使用场景

♦️ 缓存系统

♦️ 计数器

微博的转发数、评论数等;

业务需求中经常有需要用到计数器的场景:譬如一个手机号一天限制发送5条短信、一个接口一分钟限制多少请求、一个接口一天限制调用多少次等等。使用Redis的Incr自增命令可以轻松实现以上需求 参考 https://blog.csdn.net/qq_33556185/article/details/79427271

♦️ 消息队列系统

简单消息队列功能

https://blog.csdn.net/u010012299/article/details/72852370

♦️ 排行榜

音乐、视频、游戏、若干纬度排行榜等

♦️ 社交网络

Redis属性和社交网络很匹配粉丝数、关注数

♦️ 实时系统

垃圾邮件处理系统、消息队列缓冲系统

 

 

 

 
 

 

posted @ 2018-05-15 23:55  Rainyn  阅读(431)  评论(0编辑  收藏  举报