Redis实战(一):Redis 介绍及 NIO 原理介绍

Redis一键安装并启动的脚本(root用户)

试过用其他权限用户安装会出错,可能是因为命令中没有写 sudo
切换到root,直接执行即可。

#!/bin/bash
cd /usr/local/ && wget http://download.redis.io/releases/redis-5.0.5.tar.gz && tar -zxvf redis-5.0.5.tar.gz && cd /usr/local/redis-5.0.5 && make MALLOC=libc && cd /usr/local/redis-5.0.5/src && make install && cp /usr/local/redis-5.0.5/redis.conf /usr/local/redis-5.0.5/redis.conf.backup && sed -i ‘s/daemonize no$/daemonize yes/g’ /usr/local/redis-5.0.5/redis.conf && redis-server /usr/local/redis-5.0.5/redis.conf


如果想要生产环境使用,根据README的提示,建议执行:
在这里插入图片描述

架构演进过程

刚开始,数据存在文件。

必须知道的常识:

  • 磁盘,两个指标:磁盘寻址是ms级别,带宽是每秒G/M级别
  • 内存:寻址是ns级别
    在寻址上,磁盘比内存慢了10W倍

I/O buffer成本问题:
磁盘有磁道,扇区,一个扇区512Byte小格子,带来索引的成本变大
所以在格式化磁盘的时候,会有一个4K对齐。
无论你读多少数据,操作系统都是从磁盘中一次拿4K的数据量。

随着文件变大,速度变慢,为什么?
因为IO成为瓶颈。

数据库的出现
DataPage:大小为4K,正好符合操作系统的一次IO的数据量。
数据、索引、B+树(减少大的IO)

小常识:数据在磁盘和内存体积不一样
在磁盘当中没有指针的概念,数据不能像对象一样出现,没有指针,如果一个东西存了两遍,就是实打实的两遍。

磁盘和内存的折中:使用缓存
memcached,redis

速度的提升,受限于2个基础设施的限制
1、冯诺依曼体系的硬件(磁盘IO,慢)
2、以太网,TCP/IP的网络(不稳定,数据一致性等问题)
也是因此出现了memcached,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)。

在这里插入图片描述
Memcached没有Redis那么多数据类型,数据都是以字符串(可以用JSON转换)的形式表示。

那么,Redis存在那么多数据类型的意义是什么?
如果客户端想要获得JSON中的某一小部分元素,可以只取其一小部分,直接返回给客户端。
而Memcached需要全量地返回整个JSON而不能去解析它的一部分,需要客户端自己去解析。Memcached的性能损耗会在IO以及客户端数据的解析上。

因此,重要的不是类型,重要的是Redis Server对每种数据类型都实现了自己的方法(函数)。
本质上是一种解耦,计算向数据移动。
在这里插入图片描述

Redis安装

在这里插入图片描述
安装之后就可以在任何位置用service启动redis了
查看redis状态:
在这里插入图片描述
安装完成~

插曲:关于 epoll

在这里插入图片描述
(续上图)下图右侧是零拷贝的过程
在这里插入图片描述
Redis使用的epoll
在这里插入图片描述
nginx也是用了epoll
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值