1. redis 及NIO原理介绍(redisson原理)

  本篇文章为你整理了1. redis 及NIO原理介绍(redisson原理)的详细内容,包含有深入理解redis原理 redisson原理 redis的原理和使用场景 redis基本原理 1. redis 及NIO原理介绍,希望能帮助你了解 1. redis 及NIO原理介绍。

  结论:秒 毫秒 微秒 纳秒 所以磁盘比内存在寻址上慢了10W倍

  I/O buffer:有个成本问题:
 

  磁盘与磁道,扇区:一扇区 512Byte,带来一个成本变大:索引
 

  所以磁盘都格式化为4K大小,操作系统,无论你读多少,都是最少4k从磁盘拿

  随着文件变大,速度变慢,硬盘i/o成为瓶颈,所以有了数据库的出现
 

  数据库把4k大小的页给通过索引串联了起来,因为不管一次io读多少数据(就算读1k数据),硬盘还是分成4k小的,所以数据库这个软件等于给每个4k大小的页分了一个关联id,就可以在查的时候直接把数据拿出来。
 

  如果只是把每个数据都给一个关联id,当查找数据的时候等于还是全量索引查找,所以通过一个数据的标识唯一性熟悉来关联起来,比如通过身份证号关联到一个用户的数据。
 

  
 

  当我们建表的时候,关系型数据库建表:必须给出schema,每个列的类型:字节宽度。存的时候:倾向于行级存储
 

  数据和索引都是存在磁盘当中的,所以在内存中准备个b+树,如果用户想查的时候,通过b+树找到索引id,比如身份证号,把身份证号读取到磁盘里,通过身份证号就知道找的是那条数据,然后查找到数据。

  比如一个面试题,数据库表很大,性能会下降?如果表有索引,增删改变慢,查询速度呢?

  1个或少量查询依然很快,因为有b+树索引,可以快速查找到数据

  并发大的时候会受硬盘带宽影响速度,因为查的数据多,数据都通过磁盘io读取

  数据在磁盘中速度很慢,在内存中快,可以内存型数据快太贵,买不起(比如HANA数据库),所以有了折中方案,缓存的概念。(比如memcached、redis)

  Redis简介

  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有什么好处
 

  
 

  比如memcached 数据库,它也是key-value 类型数据库,也是基于缓存的,为什么后来会被redis取代地位?
 

  memcached 的value没有类型的概念,也就说什么都可以存,使用json就可以存所有复杂的类型。
 

  redis的value有类型概念,客户端调用对应的api,redis服务端返回想要的数据就行。
 

  所以有个大数据方面的一个概念计算向数据移动,使用memcached时候,返回了所有数据,在客户端通过代码解析出想要的数据,redis直接返回的就是想要的数据结果。

  redis安装

  

yum install wget

 

  mkdir soft

  cd soft

  # 也可以上传压缩包

  wget http://download.redis.io/releases/redis-5.0.5.tar.gz

  tar xf redis...tar.gz

  cd redis-src源码目录,看README.md

  make

  # 执行make要先执行这两步

  make distclean

  yum install gcc

  # 生成了可执行程序

  cd src

  cd ..

  make install PREFIX=/opt/mashibing/redis5

  vi /etc/profile

  # 内容如下

  export REDIS_HOME=/opt/mashibing/redis5

  export PATH=$PATH:$REDIS_HOME/bin

  # 让文件生效

  source /etc/profile

  cd utils

  # (可以执行一次或多次)

  ./install_server.sh

  # 执行时候脚本自己实现过程

  a) 一个物理机中可以有多个redis实例(进程),通过port区分

  b) 可执行程序就一份在目录,但是内存中未来的多个实例需要各自的配置文件,持久化目录等资源

  c) service redis_6379 start/stop/stauts linux /etc/init.d/****

  d)脚本还会帮你启动!

  ps -fe grep redis

  

 

  以上就是1. redis 及NIO原理介绍(redisson原理)的详细内容,想要了解更多 1. redis 及NIO原理介绍的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: