zoukankan      html  css  js  c++  java
  • Redis缓存数据库(一)

    先导知识:Memcache

    Memcache是一个高性能的分布式内存对象缓存系统,代码类似于Hash。

    已经有了Memcache,为什么还要用Redis呢?

    下面Memcache的缺点:

    • 不支持数据持久化存储
    • 不支持主从
    • 不支持分片

    而对比Redis数据库,以上三点都支持,所以要使用redis。

     问题一:为什么redis能这么快?

      Redis的访问速度可达 10万+QPS(query per second,每秒内查询次数)。

    1. 完全基于内存:绝大部分请求是纯粹的内存操作,不受限于硬盘读取速度,故而执行效率高
    2. 数据结构简单,是(key,value)形式,对数据的操作也简单
    3. 采用单线程也能处理高并发请求
    4. 相对于传统的阻塞I/O,Redis使用多路I/O复用模型,非阻塞I/O
    5. 具有原子性操作。
    问题二:Redis采用的多路I/O复用函数?

      多路I/O复用函数有:epoll、kqueue、evport、select    链接:多路I/O复用技术

    1. 因地制宜,有的系统只有select
    2. 优先选择时间复杂度为O(1)的函数作为底层实现
    3. 以时间复杂度为O(n)的select作为保底
    4. 基于reactor设计模式监听I/O事件
     问题三:Redis的数据类型有哪些?(重点!!)
    1. string:最基本的数据类型,二进制安全,可以存储任何格式的数据(jpg图片,序列化的对象)
    2. hash:string元素组成的字典,适合用于存储对象
    3. list:列表,特点:先进先出、有序(按添加顺序)、可重复
    4. set:string元素组成的无序集合,通过hash实现,不允许重复
    5. sorted set:通过分数来为集合的成员进行从小到大的排序
    6. 用于计数的HyperLogLog
    7. 用于支持存储地理位置信息的Geo
    Redis的底层数据类型基础:

      1、简单动态字符串;2、链表;3、字典;4、跳跃表

      5、整数集合;6、压缩列表;7、对象

  • 相关阅读:
    jenkins与gitlab集成,分支提交代码后自动构建任务(六)
    MySQL配置参数sync_binlog说明
    jenkins部署java项目(五)
    Mac OS X 中安装JDK 7
    centos 使用pip安装mysql-python
    CentOS6.4下安装TeamViewer8
    adb & adb shell 相关命令
    mac下限速
    mac 下 word 2011 使用笔记
    python twisted启动定时服务
  • 原文地址:https://www.cnblogs.com/yonghome/p/redis1.html
Copyright © 2011-2022 走看看