redis及NIO原理学习笔记

基础知识

磁盘读取数据  一次IO最小读取4k

数据库最小 data page(4k) 对应一个序列号——索引

关系型数据库:行级存储(占位,便于在原有磁盘位置增删改)

查询时,内存中b+tree,where条件命中索引,通过索引找到dp 读入索引性能优化实质:减少I/O的流量(磁盘操作)

数据在磁盘和内存中体积不同

数据库排行

DB-ENGINES.com

redis,mysql概述

Redis 1.5M/s操作  远超于关系型 千级

磁盘IO:

1寻址:ms级

2带宽:G/M

内存IO:

1寻址:ns级,比磁盘快10w倍

2带宽:很大

内存,掉电易失

两个基础设施:

1冯诺依曼体系的计算机

2以太网,tcp/ip网络

题目:如果数据库表很大,是否会性能下降?

 如果有索引

增删改会变慢,

少量查询依然会很快, 高并发查询会受磁盘带宽限制

Redis velue类型

String(字符,数值,bitmap)

Hashes

Lists

Sets

Sorted list

Hyperlog

Geospatial

memcache不区分数据类型,

redis可以直接取元素,省去解析过程(计算向数据移动

redis启动与库的 进入 redis-cli

IO发展过程

BIO(一个连接开启一个线程)-->同步非阻塞NIO(用户空间程序轮询调用内核同一个线程轮询)-->多路复用NIO(用户态内核fd相关数据拷来拷去)--> 基于epoll多路复用NIO(内核与用户共享空间mmap注册红黑树,链表)

JVM:JAVA内存中 堆是共享的,线程栈是独立的,一个线程的成本约1M(可调节)

1.线程多了调度成本浪费

2.内存成本

Redis 单进程 单线程 单实例

“顺序性”每个链接里 命令顺序

redis单线程实例为何快

1.redis在内存存储数据,操作也在内存。(内存寻址快,带宽大)

2.I/O多路复用技术。基于内核的epoll,epoll为系统函数,当描述符在epoll函数中为ready时,才可以去read,减少线程不必要的调用;mmap为内核态和用户态共享空间,由系统内核实现,减少数据传输。

redis安装步骤

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值