Redis教程

Redis知识整理(一)

本文主要是介绍Redis知识整理(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Redis知识整理(一)

相关基础知识

磁盘指标

  • 寻址(ms)
  • 带宽(G/M)

内存指标

  • 寻址(ns)
  • 带宽很大

IO Buffer

  • 磁盘有磁道和扇区
    • 一个扇区 512Byte,小带来一个成本变大:索引
    • 读写4K 操作系统无论读多少,都是最小单位为4K从磁盘拿

时间单位

秒 >> 毫秒 >> 微秒 >> 纳秒

内存磁盘对比

磁盘比内存慢了十万倍(寻址)

数据存储发展进程

数据存储在文件中

  • 查看数据
    • grep awk
    • java的io流
  • 随着文件变大,速度变慢
    • 文件变大,硬盘(io)成为瓶颈

数据存储在DB中

  • 减少了IO的流量
  • data page 4K(对应磁盘的最小读取单位 4K)
  • 数据库由多个data page组成
  • 通过索引标记数据实际的存储地址(同样4K为单位)
    • 索引:B+树 存储在内存
    • 从B+树 节点读取到索引值入内存 进而读取到data page入内存
  • 关系型数据库建表
    • 必须有schema
    • 类型:字节宽度
    • 存储时倾向于行级存储
  • 表变大的时候,数据库变慢
    • 在有索引的情况下
      • 增删改会变慢(维护索引带来IO)
      • 查询:少量时依然很快;并发大或者复杂查询时会变慢(硬盘带宽影响速度)

缓存

  • 部分内存 + 部分磁盘
  • memcached redis …

SAP公司 HANA数据库

  • 内存级别 关系型数据库
  • 数据在内存和磁盘中体积不一样
    • 数据在磁盘中比内存中大:磁盘中不存在指针的概念,所以id对应是在两个地方有两个相同的id

数据库引擎

https://db-engines.com/en/

在这里插入图片描述

在这里插入图片描述

Redis相关

https://redis.io/

Redis数据类型

模型是key-value,数据类型指的是value类型

  • String 字符 数值…
  • hash 散列
  • list 列表
  • set 集合
  • sorted set 有序集合
  • bitmaps

在这里插入图片描述

Memcached相关

  • 也是key-value型
  • value没有数据类型的概念
  • 之所以慢慢被淘汰就是因为value没有类型的概念,获取数据时网络IO压力大且需要client做对应解码

知识整理

计算机发展到今日的两个瓶颈

  • 冯诺依曼计算机体系的硬件(性能制约)
  • 以太网、tcp/ip的网络(不稳定)

Memcached与Redis

  • Json可以表示很复杂的数据结构
    • 世界上有三种存储数据的方式
      • k = a , k = 1
      • k = [1,2,3]
      • k={x=y}
  • client从缓存中获取数据
    • memcached需要返回所有数据,client做解码
      • 网络IO的瓶颈,client要做解码
    • redis存储的话,类型反而不是特别重要,重要之处在于对于每个类型都有对应的方法
      • client端代码就会轻量很多,网络IO压力也小一些
  • 计算向数据移动

linux安装常用命令

// 安装wget命令
yum install wget

// wget获取安装包
wget http://xxx

// 新建目录
mkdir soft

// 一般linux的安装包都是c语言编写,注意查看ReadMe
// 编译&&安装 读取Makefile
make install PREFIX=/opt/soft/redis5

// 修改redis的环境变量到系统
vi /etc/profile
export REDIS_HOME=/opt/soft/redis5
export PATH=$PATH:$REDIS_HOME/bin
source /etc/profile

// 安装redis到系统
./utils/install_server.sh

Makefile文件内容(做跳转)

在这里插入图片描述

开启自启动的软件

在/etc/init.d目录下都一定存在一个文件

在这里插入图片描述

这篇关于Redis知识整理(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!