redis再战之基础常识和安装《一》

文章目录

常识

在计算机当中,数据是在磁盘中还是内存中,涉及到两方面。

  • 数据在磁盘:
  1. 寻址:查找数据的地址时间,它是毫秒级别的。
  2. 带宽:单位时间有多少个字节流过去。一般是G或者M的级别。
  • 数据在内存:
  1. 寻址:纳秒级别的。‘’
  2. 带宽:远远超过磁盘,好像是每秒几十个G

I/O buffer :
磁盘有磁道和扇区,一个扇区是512byte,如果我们访问一个硬盘都是以最小力度一个扇区512byte来查找数据,同样引发一个问题,如果一个区域足够小,那么索引就会变大(表示很大一个数的区间,可能就不是四个字节,甚至可能需要8个字节或者16个字节才能索引住这么多的512byte),所以在我们格式化磁盘的时候,就会有一个4K对齐,也就是真正使用硬件的时候,并不是以512byte来做一次读写量,就是说读取数据量哪怕是1byte,硬盘也会返回4K,这样索引就会变小。

关系型数据库建表:

  • 必须给出schema
  • 类型:建表宽度

存:倾向于行级存储,内存维护一个b+树,
磁盘:存储数据和索引
在这里插入图片描述

总结:
数据库合理的利用了各自内存寻址快和磁盘存储的能力,并且在磁盘是分而治之的存储,所以获取数据的速度及其快,最终目的是减少IO的流量,不让磁盘发生大量的IO。

问题:如果数据库的表很大,性能会降低吗?

  1. 如果表有索引,增删改变慢。
    因为修改表都需要找索引页,总是需要调整索引的位置(维护索引)。
  2. 有索引查询的话一个或少量的查询,依然会很快。
    查询会先走B+Tree找到数据所在区间,根据所在区间找到对应索引映射的数据。(局部I/O)。
  3. 并发大的时候会受硬盘带宽影响速度。如果是并发状态下,大量的请求进入数据库来请求数据,一个人4K,10个人,100个人?数据吞吐就会增大,会影响查询的速度。

折中做法

将内存中的一部分数据做缓存
关于缓存的技术有很多,比如memcached、Redis …
在这里插入图片描述
memcached
key value结构,value没有类型的概念

对比总结:
计算向数据移动获得优势
1、Memcached:如果很多人都这么获取的话,网卡IO就会成为最大的瓶颈,Client端要有你实现的代码去解码计算。
2、Redis:因为有类型,但是类型有不是太重要的,重要的是Redis服务器对每种类型都有自己的方法index(),lpop(),Client端的代码也会比较轻盈。

redis(秒级十万操作)
同为key value结构,value有类型,string(字符,数值,bitmaps),hashes,lists,sets,sorted sets

reidis安装

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)。

安装步骤

  • 安装环境
    操作系统:CentOS 7.x
    Redis版本:Redis5.x
    下载地址:http://download.redis.io/releases/redis-5.0.5.tar.gz

make:在linux中属于编译命令,跟随文件makefile,但是这个命令需要config执行之后才会生成

[root@z8524210 /]# mkdir soft						//建立一个soft目录,用来安装Redis
[root@z8524210 /]# cd soft/							//进入到目录并且下载Redis,这里我已经下载好了
[root@z8524210 soft]# tar xf redis-5.0.4.tar.gz 	//解压
[root@z8524210 redis-5.0.4]# yum install gcc		//安装C语言编译器
[root@z8524210 redis-5.0.4]# make					//执行make
[root@z8524210 redis-5.0.4]# make install PREFIX=/opt/zxj/redis5	//迁移出执行文件到指定目录
[root@z8524210 bin]# vi /etc/profile							//配置环境变量
[root@z8524210 bin]# source /etc/profile						//重新加载配置文件
[root@z8524210 bin]# cd /soft/redis-5.0.4/utils/				//进入到/soft/redis-5.0.4/utils/	目录
[root@z8524210 utils]# ./install_server.sh 						//执行这个脚本,生成服务
[root@z8524210 init.d]# ps -fd | grep redis						//查看启动的redis进程
[root@z8524210 utils]# service redis_6379 stop					//停止服务
[root@z8524210 utils]# service redis_6379 start					//开启服务
[root@z8524210 utils]# service redis_6379 status				//查看服务状态
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值