美文网首页
Redis初识

Redis初识

作者: 不二不二熊 | 来源:发表于2019-07-04 15:23 被阅读0次
    一、盛赞Redis
    • 高性能 key-value服务器(官方号称QPS能达到10w级别)
    • 支持多种数据结构(string、hash、list、set、zset、geo、hyperloglog......)
    • 提供丰富功能(pipeline、慢查询、geo、位图)
    • 高可用分布式支持
    二、Redis初识
    1. Redis特点?
    • 开源(早期Redis的代码仅只有23000行)
    • 基于键值对的存储服务系统(Map类似存储结构)
    • 多种数据结构
    • 高性能,功能丰富
    2.Redis的"前世今生"

    Salvatore Sanfilippo(antirez)是redis的作者。redis的起源是因为作者在开发项目时想记录用户访问网站的记录,本来是想用MySql实现,奈何MySql不太适用于业务场景,亦或者是当时开发机器不是特别理想,在这种情况下Redis应运而生。

    3. 谁在使用Redis?

    或许你应该可以反问:现在还没有在使用Redis的公司吗?国外:Github、Twitter、StackOverFlow、Alibaba、Baidu、sohu、新浪微博、美团·······

    4. Redis特性
    • 速度块

    官方给出的数据是10W级别OPS。Redis之所以这么块主要可以归结于以下几个原因:
    1.基于内存
    2.使用C语言实现
    3.单线程模型(避免了线程切换之间的消耗)

    内存与价格关系图
    比较
    • 持久化(断电不丢失数据)

    Redis所有的数据保存在内存中,对数据的更新将异步的保存在磁盘上。Redis提供RDB以及AOF支持。

    • 多种数据结构

    除了以下5种基本的数据结构,Redis在版本的更新迭代中,逐渐涌现了更多的数据结构,例如:
    1 、BitMap(位图) 能够使用很小的内存来实现高效的存储,例如:布隆过滤器。
    2 、HypeLogLog Redis在2.8.19中新增的数据结构,超小内存(12K)实现唯一值计数.缺点:计数有误差率
    3 、GEO 地理信息定位,可以实现例如:附近的人功能
    如果你用Type来查看的化,你会发现GEO本身是使用集合来实现的,因此以上均属于衍生的数据结构,主要的数据结构仍然只有5种。

    5种数据结构
    • 支持多种编程语言

    基于TCP的通信协议,因此例如:java、PHP均提供了操作Redis客户端。

    • 功能丰富

    发布订阅
    支持lua脚本
    支持pipeline提高效率

    • 简单

    代码精简,不依赖外部库;单线程模型

    • 主从复制


      主从复制
    • 高可用和分布式

    Redis本身的数据模型实现高可用是比较困难的,因此在2.8版本之后Redis提供了Redis-Sentinel这样的功能来支持高可用;Redis从3.0版本提供Redis-Cluster支持分布式。

    相关文章

      网友评论

          本文标题:Redis初识

          本文链接:https://www.haomeiwen.com/subject/bjjebqtx.html