Redis为什么使用的是K-V,而不是sql关系?

redis是一部分数据,不是全部,因为数据不全面,很难去组建数据关系

 

worker 是单线程,但是 IO是多线程

多个用户并发的向内核发送数据,epoll接收请求,因为worker是单线程的,所以IO读取是串行化的,在worker内部也是串行化计算的

Redis 马士兵 面试(笔记不太好)

并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。

 

IO多线程:

Redis 马士兵 面试(笔记不太好)

连接池和线程池是两个不同的概念

 

redis的使用场景:

五个Value类型

String,   List,  hash,   set,   sorted set zset

Redis 马士兵 面试(笔记不太好)

中 字在 UTF-8编码下,redis中占了三个字节,

gbk中占了2个字节

Redis 马士兵 面试(笔记不太好)

二进制安全

二进制安全功能(binary- safe function)是指在一个二进制文件上所执行的不更改文件内容的功能或者操作。这能够保证文件不会因为某些操作而遭到损坏。二进制数据是按照一串0和 1的形式编码的。而绝大多数的程序会给某些特殊的比特串赋予不同的格式代码,所以当用户使用一个程序读取一个二进制文件时,该文件会被按照这个程序的规则 进行解释。如果这个程序所使用的格式编码和文件被写入的格式编码一致,那么这个文件可以被正常读取,否则该文件的格式代码之中会被附加一些无意义的符号, 也可能会导致文件损坏。

 

 

LIST:

Redis 马士兵 面试(笔记不太好)

 

list可以模拟  栈和队列和数组

模拟栈: 同向压入lpush,弹出lpop

异向:队列

lindex():数组

ltrim: 优化redis内存量

 

HASH

SET:

Redis 马士兵 面试(笔记不太好)

 

 

 

Redis 马士兵 面试(笔记不太好)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章: