本文主要是介绍Redis知识整理(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Redis知识整理(一)
相关基础知识
磁盘指标
内存指标
IO Buffer
- 磁盘有磁道和扇区
- 一个扇区 512Byte,小带来一个成本变大:索引
- 读写4K 操作系统无论读多少,都是最小单位为4K从磁盘拿
时间单位
秒 >> 毫秒 >> 微秒 >> 纳秒
内存磁盘对比
磁盘比内存慢了十万倍(寻址)
数据存储发展进程
数据存储在文件中
数据存储在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做解码
- 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知识整理(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!