美文网首页
Redis初识

Redis初识

作者: 香沙小熊 | 来源:发表于2020-01-06 15:55 被阅读0次

    Redis是什么?

    • 开源
    • 基于键值的存储服务系统
    • 多种数据结构
    • 高性能、功能丰富

    Redis的特性

    • 速度快
    • 持久化
    • 多种数据结构
    • 支持多种编辑语言
    • 功能丰富
    • 简单
    • 主从复制
    • 高可用、分布式
    Redis特性-速度快

    10w ops (官方10w次读写)
    数据存在哪? 内存
    什么语言写? C语言(50000 line)
    线程模型? 单线程

    速度快-内存


    image.png
    Redis特性-持久化(断电不丢数据)

    Redis所有数据保持在内存中,对数据的更新将异步地保存到磁盘上。

    Redis特性-多种数据结构
    String(字符串)

    string是redis最基本的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象

    string类型是Redis最基本的数据类型,一个键最大能存储512MB。

    哈希(Hash)类型:(map<string,string>)

    我们可以将Redis中的Hash类型看成具有<key,<key1,value>>,其中同一个key可以有多个不同key值的<key1,value>,所以该类型非常适合于存储值对象的信息。如Username、Password和Age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。

    List类型

    List类型是按照插入顺序排序的字符串链表(所以它这里的list指的相当于java中的linkesdlist)。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。List类型:(链表:最后一个插入的元素,位置索引为o)

    set类型

    Set类型看作为没有排序的字符集合。如果多次添加相同元素,Set中将仅保留该元素的一份拷贝。

    Sorted-Sets类型

    Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。成员是唯一的,但是分数(score)却是可以重复的。

    分数:按分数高低排序。位置索引:分数最低的索引为0

    Bitmaps

    bitmaps不是一个真实的数据结构。而是String类型上的一组面向bit操作的集合。由于strings是二进制安全的blob,并且它们的最大长度是512m,所以bitmaps能最大设置2^32个不同的bit。
    Bitmaps的最大优点就是存储信息时可以节省大量的空间。例如在一个系统中,不同的用户被一个增长的用户ID表示。40亿(2^32=410241024*1024≈40亿)用户只需要512M内存就能记住某种信息,例如用户是否登录过。

    HyperLogLogs

    HyperLogLog是用于计算唯一事物的概率数据结构(从技术上讲,这被称为估计集合的基数)。如果统计唯一项,项目越多,需要的内存就越多。因为需要记住过去已经看过的项,从而避免多次统计这些项。

    GEO

    Redis的GEO特性在 Redis3.2版本中推出,这个功能可以将用户给定的地理位置(经度和纬度)信息储存起来,并对这些信息进行操作

    功能丰富

    发布订阅
    Lua脚本
    事务
    pipeline

    简单

    不依赖外部库(like libevent)
    单线程模型

    主从复制
    高可用、分布式

    高可用 : Redis-Sentinel(v2.8)支持高可用
    分布式:Redis-Cluster(v3.0)支持分布式

    Redis典型应用场景

    • 缓存系统

    • 计数器
      微博点赞与评论技术
      视频网站播放数量

    • 消息队列系统
      简单消息队列

    • 排行榜

    • 社交网络
      粉丝数

    • 实时系统
      垃圾邮件过滤器

    相关文章

      网友评论

          本文标题:Redis初识

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