redis(一):介绍&&安装

背景

介绍redis之前首先看一个图:
在这里插入图片描述
首先有些常识就是,计算机在内存中寻址是比磁盘快上10w倍的,在磁盘上,数据存储是分扇区的,每个扇区是512byte,为了减少读取成本,不管想读多少数据,每次最少从内存中读取4K,上图中data.txt的data page每个都是4K,并且指向他们的索引也都是4k,在数据库中查找数据的时候这些索引存储在B+Tree里,通过遍历B+Tree来CRUD这些数据。

在这里有个问题就是,为什么数据库表很大的话,查询效率会降低

  • 如果表有索引,增删改查变慢
  • 寻址:一个或少量查询依然很快
  • 带宽:并发大的时候,会受硬盘带宽影响

上文说了硬盘读写较内存读写来看很慢,并且数据在磁盘和内存中的体积不一样,数据在内存中体积比较小,因为有指针的存在,不需要索引,每个索引也是占用4K的,因此数据放在内存中不仅占用空间小,查询效率也很高,但是价格是极其昂贵的。除此之外,目前我们的信息系统都是基于两个基础设施,分别是冯诺依曼体系的硬件以及以太网的TCP/IP协议,目前的信息系统都受到两者的限制。

SAP公司有个HANA技术,他是一个2T内存级别的关系型数据库,这个数据库的价格达到了两亿,显然这并不是普通公司能承受的了的。由于价格过于昂贵,因此采取了一种折中的方案,由此引出了缓存的概念。包括MemCache,以及我们要介绍的redis等。

介绍

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings)散列(hashes)列表(lists)集合(sets)有序集合(sorted sets) 与范围查询, bitmapshyperloglogs地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication)LUA脚本(Lua scripting)LRU驱动事件(LRU eviction)事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

在这里插入图片描述
上述的官方描述中所说的数据结构对应于redis的value,对比memCache,两者的一个根本区别就在于memCache没有类型的概念,那么当我们的client想要获取memCache的数据的时候,就只能把value中的所有数据都拿到,然后根据其提供的密钥解码,而redis可以通过索引或者其他方法去拿到client想要的value,这样大大减少了网络I/O,性能提高。

数据库引擎对比网站:https://db-engines.com/en

安装

安装wget命令

yum install wget

下载redis

cd ~
mkdir soft
cd soft
wget http://download.redis.io/releases/redis-5.0.5.tar.gz

解压

tar xf redis-5.0.5.tar.gz  //xf这里最好不写v,规避一下I/O,知道成功或者失败就可以了
cd /源码目录/src    //看README文件进行安装

安装编译环境

yum install gcc

安装

make
make install PREFIX=/opt/whitecat/redis5

配置环境变量

vi /etc/profile  
source /etc/profile

文件最后添加下面两句

export REDIS_HOME=/opt/whitecat/redis5
export PATH=$PATH:$REDIS_HOME/bin
cd /源码目录/utils
./install_server.sh     //服务自动启动

一个物理机可以有多个redis进程,通过port区分。
可执行程序就一份,但未来内存中多个实例需要各自的配置文件、持久化目录等资源

启动/查看状态/关闭

service redis_端口号 start/status/stop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值