zoukankan      html  css  js  c++  java
  • 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属性和社交网络很匹配粉丝数、关注数

    ♦️ 实时系统

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

     
     
  • 相关阅读:
    Shell学习(四)Shell运算符
    Shell学习(三)Shell参数传递
    Shell学习(二)Shell变量
    Shell学习(一)认识Shell
    JVM学习(四)JVM调优
    JVM学习(三)JVM垃圾回收
    JVM学习(二)JVM加载类
    JVM学习(一)什么是JVM
    Python学习————包
    Python学习————模块
  • 原文地址:https://www.cnblogs.com/thiaoqueen/p/9043817.html
Copyright © 2011-2022 走看看