redis相关知识 redis的认识

负载均衡,分布式,集群的理解,多台服务器代码如何同步?分布式是指将不同的业务分布在不同的地方,集群指的是将几台服务器集中在一起,实现同一业务 。
负载均衡是一种方法,常用的是nginx反向代理 , 其实负载均衡是可以理解为搭建集群的一部分,属于集群服务器的前置系统 。
而集群指的是将几台服务器集中在一起,实现同一业务 。分布式中的每一个节点,都可以做集群 。而集群并不一定就是分布式的 。
多台服务器协同工作,每台服务器叫做集群的一个“节点”,每个节点都提供相同的服务 。
负载均衡 负载均衡充当的角色就是“裁判”,它将大量并发流量分摊至多台节点服务器(集群)上进行处理,这样减少了用户等待响应时间 。所以说负载均衡离不开服务集群 。
所以,集群可能运行着一个或多个分布式系统,也可能根本没有运行分布式系统;分布式系统可能运行在一个集群上,也可能运行在不属于一个集群的多台(2台也算多台)机器上 。
面试官:Redis中的缓冲区了解吗-【redis相关知识 redis的认识】对于同一缓冲系,当缓冲比一定时,总浓度越大,抗酸成分和抗碱成分越多 , 外加同量酸碱后,缓冲比变化越 小,缓冲容最大  , 缓冲能力就越强;反之,总浓度越?。?缓冲容量越小  , 缓冲能力就越弱 。
将程序缓冲区的内容写入文件 当AOF持久化功能处于开启状态时 , 服务器每执行完一个命令就会将命令以协议格式追加写入redisServer结构体的aof_buf缓冲区 。而在服务重启的时候会把AOF文件加载到缓冲区中 。
AOF缓冲区不可以替代AOF重写缓冲区的原因是AOF重写缓冲区记录的是从重写开始后的所有需要重写的命令,而AOF缓冲区可能只记录了部分的命令 。
其实,不管是什么样的面试形,问的问题都差不多,万变不离其宗 , 都有规律可寻 。其实对所有的面试官而言 , 只有一个目的:在最短的时间里了解到你最多的信息 。
NoSQL数据库Redis几个认识误区还有一些看法则认为Redis是一个memory database,因为它的高性能都是基于内存操作的基础 。另外一些人则认为Redis是一个data structure server,因为Redis支持复杂的数据特性,比如List, Set等 。
NoSQL定义NoSQL(Not Only SQL),意即不仅仅是SQL,泛指非关系型数据库 。
NoSQL数据库存在着“key-value存储”、“文档型数据库”、“列存储数据库”等各种各样的种类,每种数据库又包含各自的特点 。下一节让我们一起来了解一下NoSQL数据库的种类和特点 。
NoSQL数据库无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式 。而在关系数据库里,增删字段是一件非常麻烦的事情 。如果是非常大数据量的表 , 增加字段 简直就是一个噩梦 。
Redis的IO多路复用——单线程的理解(Redis6.0之后的多线程)1、IO多路复用技术架构图如下 注:多线程处理可能涉及锁,并且涉及切换线程的消耗 。耗时的命令会导致性能下降,而且无法发挥CPU多核的性能 。Redis多线程只用来处理网络数据的读写和协议解析,命令的执行仍旧是单线程 。
2、Redis采用多路复用机制 , 使其在网络I/O操作中可以大量并发处理客户端请求,实现高吞吐率 。I/O多路复用 在单线程中通过记录跟踪每一个I/O流的状态来管理多个I/O流 。
3、Redis在I/O事件处理上,采用了I/O多路复用技术,同时监听多个套接字, 并为套接字关联不同的事件处理函数,通过一个线程实现了多客户端并发处理 。
4、因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽 。既然单线程容易实现,而且CPU不会成为瓶颈 , 所以 Redis 是单线程的 。
5、此外,Redis 0之后引入了线程IO , 采用多线程来处理网络数据的读写和协议解析,但命令执行仍然是单线程顺序执行 。这样的方式既能保持Redis命令执行的原子性,又能提高IO处理的效率 。
6、之后增加了多线程的实现,多线程使用在io的操作上,工作线程还是只有一个单线程,还是串行实现的,多的io线程用于 读read 或者 写write  , 多线程不会同时执行读写操作 。
深入了解Redis操作五大数据类型常用命令1、hash可以用于存储变更的数据,比如user,name,age等,尤其是用户信息之类的,hash更加适合用于对象的存储,string更加适合用于字符串的存储 。
2、string string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value 。string 类型是二进制安全的 。意思是 redis 的 string 可以包含任何数据 。比如jpg图片或者序列化的对象 。
3、常用命令:set、get、decr、incr、mget等 。注意:一个键最大能存储512MB 。Hash(哈希)Redis hash 是一个键值(key=value)对集合;是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象 。
4、Redis五种数据类型分别是string(字符串),hash(哈希),list(列表),set(集合)及sortset(有序集合) 。字符串string字符串类型是Redis中最基本的数据存储类型,它是一个由字节组成的序列,在Rediss中是二进制安全的 。
5、Redis支持的五种数据类型包括String、Hash、List、Set、Zset,其中,String类型的值可以是字符串、数字或二进制,但值最大不能超过512MB 。
6、String 字符串 字符串类型是 Redis 最基础的数据结构,首先键都是字符串类型,而且 其他几种数据结构都是在字符串类型基础上构建的,我们常使用的 set key value 命令就是字符串 。

    推荐阅读