1.基础常识
1.计算机中的数据是存储在操作系统的文件中,比如"hello world"数据写入data.txt文件中,通过文件读取的命令来读取数据,文件读取的常用命令有:grep awk;
2.文件对应的物理设备是磁盘,磁盘涉及到两个指标:
(1)寻址:ms
(2)带宽:G或者M
内存:
(1)寻址:ns,(秒s->毫秒ms->微妙->纳秒ns)
(2)带宽:很大
结论:内存寻址速度比文件快了10w倍;
I/O Buffer:本质是成本问题
磁盘有磁道和扇区
1扇区=512Byte
带来一个成本变大:索引,如果有1G的文件
磁盘默认4k,操作系统,无论你读多少,都是最少4k从磁盘拿
3.储存单位计算
1 Byte = 8 Bits(即 1B=8b,称呼Byte为大B,称呼Bit为小b)
1 KB = 1024 Bytes
1 MB = 1024 KB
1 GB = 1024 MB
Bit:翻译为 “位”或“比特”,是计算机运算的基础,属于二进制的范畴;
Byte:翻译为“字节”,是计算机文件大小的基本计算单位;
这两者的应用场景不同;
1.在应用层通常是用byte来做单位,表示文件的大小,在用户看来就是可见的数据大小。比如一个英文字符就是1byte,一个汉字就是2byte;
2.在物理层,数据传输用bit来做单位,数据链路层的传输对于用户是透明的,这种通信传输是基于二进制的传输。
4.数据库原理
2.Redis介绍
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,
1.它可以用作数据库、缓存和消息中间件。
2.它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。
3.Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence),
4.通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
3.与memcache的区别,为什么要使用redis
其他区别:
(1)memcache不支持持久化;
(2)redis 值支持多种类型,查询速度更快;
(3)value的长度,memcache最大2M,redis String类型的值最大是512M;