一、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属性和社交网络很匹配粉丝数、关注数

♦️ 实时系统

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

 
 

Redis入门到高可用(一)——初识Redis的更多相关文章

  1. Redis入门到高可用(十九)——Redis Sentinel

    一.Redis  Sentinel架构     二.redis sentinel安装与配置 四.客户端连接Sentinel            四.实现原理—— 故障转移演练(客户端高可用) 五.实 ...

  2. Redis入门到高可用(十八)—— 主从复制

    一.单机有什么问题 1.机器故障 2.容量瓶颈 3.QPS瓶颈 二.主从复制 1.数据副本(高可用.分布式基础) 2.拓展读性能(读写分离)  简单总结: 三.主从复制配置 四.主从复制配置-实验演示 ...

  3. Redis入门到高可用(十一)—— 慢查询

    一.慢查询日志 慢查询日志帮助开发和运维人员定位系统存在的慢操作.慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阀值,就将这条命令的相关信息(慢查询ID,发生时间戳,耗时,命令的详 ...

  4. Redis入门到高可用(十六)—— 持久化

    一.持久化概念 二.持久化方式 三.redis持久化方式之——RDB 1.什么是RDB 在 Redis 运行时, RDB 程序将当前内存中的数据库快照保存到磁盘文件中, 在 Redis 重启动时, R ...

  5. Redis入门到高可用(十)—— Spring与Redis的整合

    1.pom文件 <!--redis--> <dependency> <groupId>org.springframework.data</groupId> ...

  6. Redis入门到高可用(三)——通用命令

    通用命令  参考 http://redisdoc.com/index.html 1. keys  #查看所有key 时间复杂度:O(N), N 为数据库中 key 的数量. 127.0.0.1:637 ...

  7. Redis入门到高可用(九)——无序set

    一.结构 特点:无序,无重复,支持集合间操作 二.主要API smembers : 无序:(会阻塞)小心使用,可用sscan代替 spop: 从集合中弹出元素,每次只能弹出一个: 三.实战 抽奖系统 ...

  8. Redis入门到高可用(二十)——Redis Cluster

    一.呼唤集群 二.数据分布概论      三.哈希分布 1.节点取余 2.一致性哈希 添加一个node5节点时,只影响n1和n2之间的数据   3.虚拟槽分区 四.基本架构 五.redis clust ...

  9. Redis入门到高可用(十三)—— 发布订阅

    一.模型 二.主要API 1.publish(发布命令) 2.subcribe(订阅) 3.取消订阅(unsubcribe) 4.其他API 三.消息队列功能 redis实现消息队列功能 应用场景:抢 ...

随机推荐

  1. ThinkingInJava 学习 之 0000004 初始化与清理

    1. 用构造器确保初始化. 不接受任何参数的构造器叫做默认构造器. Tree tree = new Tree(12); 如果Tree(int)时Tree类的唯一的构造器,那么编译器将不会允许你以其他任 ...

  2. react学习笔记(一)用create-react-app构建 React 开发环境

    React 可以高效.灵活的用来构建用户界面框架,react利用高效的算法最小化重绘DOM. create-react-app 是来自于 Facebook,通过该命令不需配置就能快速构建 React ...

  3. 132、Android安全机制(2) Android Permission权限控制机制(转载)

    http://blog.csdn.net/vshuang/article/details/44001661 http://www.cnblogs.com/mengdd/p/4892856.html

  4. 终端IO(上)

    一.综述 终端IO有两种不同的工作方式: 规范方式输入处理.在这种方式中,终端输入以行为单位进行处理.对于每个读要求,终端驱动程序最多返回一行. 非规范方式输入处理.输入字符不以行为单位进行装配 如果 ...

  5. java注解和反射学习

    spring框架很多地方都应用了注解,如@controller,所以要学会自定义注解及注解处理器. Class<?> cl=Class.froName(className) //通过类名加 ...

  6. D - Area of Mushroom

    Teacher Mai has a kingdom with the infinite area. He has n students guarding the kingdom. The i-th s ...

  7. FIFO设计中的深度计算【zz】

    FIFO设计中的深度计算: 写时钟频率 w_clk, 读时钟频率 r_clk, 写时钟周期里,每B个时钟周期会有A个数据写入FIFO: 读时钟周期里,每Y个时钟周期会有X个数据读出FIFO: 则,FI ...

  8. rsync 常用参数

    rsync 常用参数的具体解释如下: -v, --verbose 详细模式输出-q, --quiet 精简输出模式-c, --checksum 打开校验开关,强制对文件传输进行校验-a, --arch ...

  9. Django----ModelFrom

    ModelForm a. class Meta: model, # 对应Model的 fields=None, # 字段 exclude=None, # 排除字段 labels=None, # 提示信 ...

  10. HDLM for AIX安装

    HDLM for AIX安装 1)    安装ODM补丁包 补丁包在软件介质光盘的\HDLM_AIX\AIX_ODM\HTC_ODM下面:HTCODM3.tar 解压:#tar -xvf HCODM3 ...