zoukankan      html  css  js  c++  java
  • Redis介绍

    Redis是什么

    官网:https://redis.io/

    中文官网:http://www.redis.net.cn/

    推荐文档:http://www.redis.cn/documentation.html

    官方说明:

    Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串哈希表列表集合有序集合位图hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区

    其实就是内存的数据结构服务器。键值对集合。

    特点:

    Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。以设置和获取一个256字节字符串为例,它的读取速度可高达110000次/s,写速度高达81000次/s。

    Redis跟memcache不同的是,储存在Redis中的数据是持久化的,断电或重启后,数据也不会丢失。因为Redis的存储分为内存存储、磁盘存储和log文件三部分,重启后,Redis可以从磁盘重新将数据加载到内存中,这些可以通过配置文件对其进行配置,正因为这样,Redis才能实现持久化。

    Redis数据类型

    string 字符串

    是redis的基本数据类型,一个Key对应一个Value,其中上面说的位图也是string类型的,一个string的value最大存储250MB。

    hash 哈希表

    也是Key对应Value,不过这个Value是一个 redis 中string类型集合,hash特别适合用于存储对象。

    每个 hash 可以存储 232 -1 键值对(40多亿)。

    作用:也叫做字典,可以存储字典以及对象, 列表就像属性  值一样。

    list 列表

    列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),可以添加重复数据。

    列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

    作用:双端链表,消息队列,时间轴

    Set集合

    字符串的无序集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。一个Set中的数据不能重复。

     作用:集合的概念就是一堆不重复值的组合。

    可以做交集、并集、差集等操作

    ZSet有序集合

    和Set一样,但是SortSet每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

    SortSet的成员是唯一的,但是分数可以重复。

     作用:可以排序 优先级

    Redis使用场景

    众多语言都支持Redis,因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度。

    拿大型网站来举个例子,比如a网站首页一天有100万人访问,其中有一个板块为推荐新闻。要是直接从数据库查询,那么一天就要多消耗100万次数据库请求。上面已经说过,Redis支持丰富的数据类型,所以这完全可以用Redis来完成,将这种热点数据存到Redis(内存)中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。

    总之而言,就是缓存一些经常使用的热数据。

  • 相关阅读:
    multiprocessing 多进程实现 生产者与消费者模型JoinableQueue
    条件锁condition与Queue()
    threading 官方 线程对象和锁对象以及条件对象condition
    【NOIp训练】—子串查找VII(AC自动机+树链剖分+线段树)
    【NOIp训练】—子串查找VII(AC自动机+树链剖分+线段树)
    【HDU 5628】—Clarke and math(狄利克雷卷积快速幂)
    【HDU 5628】—Clarke and math(狄利克雷卷积快速幂)
    【NOIp2019模拟】题解
    【NOIp2019模拟】题解
    【NOIp2019模拟】题解
  • 原文地址:https://www.cnblogs.com/wudequn/p/8062812.html
Copyright © 2011-2022 走看看