• redis常识


    磁盘:

    (1)寻址 ms (2)带宽(单位时间多大数据流过去)ns

    内存:

    (1)寻址 ns 磁盘比内存在寻址上慢了10w倍

    I/O buffer:成本问题

    磁盘有磁道和扇区:一扇区512Byte带来索引成本变大

    格式化磁盘时有一个4K对齐:读小于4K的,返回4K

    无论你从磁盘读多少,都是最少4K

    文件里数据,随着文件变大,速度变慢(文件变大,硬盘(i/o)成为瓶颈) 

    data page (大小4K)

    建索引,提升速度

    关系型数据库建表,必须给出schema(表的列,每一个列的类型),每一行数据宽度就固定了,更倾向于行级存储。

    内存中准备了一个B+树,叶子(data page),树干也在内存中

    SQL的where条件里,只要命中索引,查询B+树会走树干,找到叶子,从磁盘读到内存。

    (索引放在内存中,会引起内存不够,所以索引和数据都放在磁盘)

    数据库的表很大,性能就会变低?

    如果表有索引,增删改就会变慢。

    查询速度变慢?

    (1)1个或少量查询依然很快

    (2)并发大的时候会受硬盘带宽影响速度

    数据量大,如何快速查询数据库 

    (磁盘、内存折中)缓存:memcached、redis

    计算机系统2个基础设备:冯诺依曼体系的硬件、以太网和TCP/IP的网络

    磁盘和内存体积不一样:磁盘中没有指针概念 

    Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。

    它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps,hyperloglogs 和 地理空间(geospatial) 索引半径查询。 

    Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

    Redis:

    key:

    value:String(字符类型、数值类型)、hashes、lists、sets、sorted sets、bitmaps

    客户端取回v中的某一个元素,redis的server中对每种类型都有自己的方法(index()、lpop)

    memcached(key,value):value没有类型的概念

    客户端取回v中的某一个元素,返回value所有的数据到client(通过server  网卡IO),客户端要有你实现的代码去节码

  • 相关阅读:
    抽象工厂
    下一代工具链「GitHub 热点速览 v.22.43」
    vue2旧项目迁移到vite开发,提升编译效率
    Flink CDC 新一代数据集成框架
    13 媒体存储的封装1
    线程池源码分析
    Docker harbor私有仓库部署与管理
    放徦期间在线客服系统的用处?总结来了
    痞子衡嵌入式:揭秘i.MXRTxxx系列上串行NOR Flash双程序可交替启动设计
    在做题中学习(30):字符串相加
  • 原文地址:https://blog.csdn.net/yw_2022/article/details/125502930