节点服务器

redis

怎甘沉沦 提交于 2019-12-04 08:11:10
1:redis持久化的2种方式 RDB以及AOF RDB 每次进行快照方式会重新记录整个数据集的所有信息。RDB在恢复数据时更快,可以最大化redis性能,子进程对父进程无任何性能影响。 AOF 有序的记录了redis的命令操作。意外情况下数据丢失甚少。他不断地对aof文件添加操作日志记录. 前者是指超过上一次aof重写aof文件大小的百分之多少,会再次优化,如果没有重写过,则以启动时为主。后者是限制了允许重写的最小aof文件大小。 bgrewriteaof 命令是手动重写命令,会fork子进程,在临时文件中重建数据库状态,对原aof无任何影响,当重建旧的状态后,也会把fork发生后的一段时间内的数据一并追加到临时文件,最后替换原有aof文件,新的命令继续向新的aof文件中追加 2:redis集群 1.主从复制 主从复制原理: 从服务器连接主服务器,发送SYNC命令; 主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令; 主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令; 从服务器收到快照文件后丢弃所有旧数据,载入收到的快照; 主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令; 从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令;( 从服务器初始化完成

redis原理及应用

大兔子大兔子 提交于 2019-12-04 07:01:19
一、redis来源 二、数据类型 三、主流的应用场景 四、特性 五、补充 一、 redis来源 redis作者:Salvatore Sanfilippo (antirez),男,意大利人. 需求:一个访客信息追踪网站,网站可以通过JavaScript脚本,将访客的IP地址、所属国家、阅览器信息、被访问页面的地址等数据传送给LLOOGG. com。然后LLOOGG.com会将这些浏览数据通过web页面实时地展示给用户,并储存起最新的5至10,000条浏览记录以便进行查阅。 redis解决方案 每当某个被追踪的网站新增一条浏览记录时,LLOOGG.com就会将这条新的浏览记录推入(push)到与该网站相对应的列表里面,当列表的长度超过用户指定的最大长度时,程序每向列表推入一条新的记录,就需要从列表中弹出(pop)一条最旧的记录。 现在已经被广泛使用: Twitter使用Redis来储存用户时间线(user timeline)。 StackOverflow使用Redis来进行缓存和消息分发。 Pinterest使用Redis来构建关注模型(follow model)和兴趣图谱(interest graph)。 Flickr使用Redis来构建队列。 Github使用Redis作为持久化的键值对数据库,并使用Resque来实现消息队列。 新浪微博使用Redis来实现计数器、反向索引、排行榜

一致性hash算法

隐身守侯 提交于 2019-12-04 03:39:23
一、算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 二、应用场景 现在一致性hash算法在分布式系统中也得到了广泛应用,分布式系统中涉及到集群部署,包括缓存Redis集群,数据库集群,我们在使用Redis的时候,为了保证Redis的高可用,提高Redis的读写性能,最简单的方式我们会做主从复制,组成Master-Master或者Master-Slave的形式,或者搭建Redis集群,进行数据的读写分离,类似于数据库的主从复制和读写分离。如下所示: 同样数据库中也是,当单表数据大于500W的时候需要对其进行分库分表,当数据量很大的时候(标准可能不一样,要看Redis服务器容量)我们同样可以对Redis进行类似的操作,就是分库分表。 假设,我们有一个社交网站,需要使用Redis存储图片资源,存储的格式为键值对,key值为图片名称,value为该图片所在文件服务器的路径,我们需要根据文件名查找该文件所在文件服务器上的路径,数据量大概有2000W左右,按照我们约定的规则进行分库,规则就是随机分配,我们可以部署8台缓存服务器,每台服务器大概含有500W条数据

redis入门(三)(转载)

柔情痞子 提交于 2019-12-03 20:12:39
目录 redis入门(三) 目录 前言 事务 原理 Lua脚本 安装 脚本命令 集群搭建工具 redis-trib.rb redis官方集群搭建 集群横向扩展 故障转移 redis管理 参考文档 redis入门(三) 目录 redis 入门(一) redis入门(二) redis入门(三) 前言 在前两章介绍了 Redis 的一些常用的API与功能,在本章会对一些其他功能包括事务、脚本、Redis集群搭建工具以及集群动态扩容与故障转移方式进行讲解。 事务 在关系型 数据库 ,我们可以通过事务(transaction)的方式执行数据库级别的原子性操作。在Redis中也提供简单的事务功能。 Redis通过MULTI、EXEC、WATCH等命令来实现功能。它提供了一种将多个命令请求打包,然后一次性、按顺序地执行多个命令的机制。 将一组需要一起执行的命令放到MULTI和EXEC两个命令之间。MULTI命令代表事务开始,EXEC命令代表事务结束,它们之间的命令是原子顺序执行的,在MULTI执行之后,的写命令会直接返回QUEUE,当输入EXEC后会将所有命令一起执行。 127.0.0.1:6379> multi OK 127.0.0.1:6379> set a 1 QUEUED 127.0.0.1:6379> set b 2 QUEUED 127.0.0.1:6379> exec 1) OK

PHP 高级面试115题汇总(含答案)

左心房为你撑大大i 提交于 2019-12-03 17:29:26
1、给你四个坐标点,判断它们能不能组成一个矩形,如判断 ([0,0],[0,1],[1,1],[1,0]) 能组成一个矩形。 勾股定理,矩形是对角线相等的四边形。只要任意三点不在一条直线上,任选一点,求这一点到另外三点的长度的平方,两个短的之和如果等于最长的,那么这就是矩形。 2、写一段代码判断单向链表中有没有形成环,如果形成环,请找出环的入口处,即 P 点 1 /* 2 *单链表的结点类 3 */ 4 class LNode{ 5 //为了简化访问单链表,结点中的数据项的访问权限都设为public 6 public int data; 7 public LNode next; 8 } 9 10 class LinkListUtli { 11 //当单链表中没有环时返回null,有环时返回环的入口结点 12 public static LNode searchEntranceNode(LNode L) 13 { 14 LNode slow=L;//p表示从头结点开始每次往后走一步的指针 15 LNode fast=L;//q表示从头结点开始每次往后走两步的指针 16 while(fast !=null && fast.next !=null) 17 { 18 if(slow==fast) break;//p与q相等,单链表有环 19 slow=slow.next; 20 fast

使用kubeadm添加node节点

情到浓时终转凉″ 提交于 2019-12-03 14:49:06
node节点服务器需要安装好 kubeadm, kubelet 和 kubectl: 使用kubeadm join 命令即行,使用master节点kebeadm init时的提示: root@boke-node:~# kubeadm join 192.168.17.180:6443 --token abcdef.0123456789abcdef \ > --discovery-token-ca-cert-hash sha256:ea37964dc96f76f3e658b27ffdc220f60ced82de387aafd8effafe9618f5e6cb [preflight] Running pre-flight checks [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/ [preflight] Reading configuration from the cluster... [preflight] FYI: You can look at this config

nginx upstream 容错机制

给你一囗甜甜゛ 提交于 2019-12-03 11:54:11
1. 摘要 (1) 结论 详细描述了nginx记录失效节点的6种状态(time out、connect refuse、500、502、503、504,后四项5XX需要配置proxy_next_upstream中的状态才可以生效)、失效节点的触发条件和节点的恢复条件、所有节点失效后nginx会进行恢复并进行重新监听。 (2) Nginx 负载均衡方式介绍 Nginx的负载均衡方式一共有4种:rr(轮询模式)、ip_hash、fair、url_hash。 (3) Ngxin负载均衡和相关反向代理配置内容 Nginx负载均衡和与容错相关的反向代理的配置。 (4) 获取后端流程 后端server的自动容错流程图。 (5) 测试环境和测试结果 针对几种错误方式进行自动容错测试。 2. 结论 (1) nginx 判断节点失效状态 Nginx 默认判断失败节点状态以connect refuse和time out状态为准,不以HTTP错误状态进行判断失败,因为HTTP只要能返回状态说明该节点还可以正常连接,所以nginx判断其还是存活状态;除非添加了proxy_next_upstream指令设置对404、502、503、504、500和time out等错误进行转到备机处理,在next_upstream过程中,会对fails进行累加,如果备用机处理还是错误则直接返回错误信息

Mysql双主加Keepalived

点点圈 提交于 2019-12-03 10:52:26
一、 MySQL于keepalived简介* * 前言: 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动。因此,如果是双主或者多主,就会增加mysql入口,增加高可用。不过多主需要考虑自增长ID问题,这个需要特别设置配置文件,比如双主,可以使用奇偶,总之,主之间设置自增长ID相互不冲突就能完美解决自增长ID冲突问题。 1.1、 MySQL* * 1.1.1、MySQL主从复制原理 复制分成三步: \1. master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events); \2. slave将master的binary log events拷贝到它的中继日志(relay log); \3. slave重做中继日志中的事件,将改变反映它自己的数据。 下图描述了这一过程: 1.1.2、MySQL双主构建思路 1.两台mysql都可读写,互为主备,默认只使用一台(masterA)负责数据的写入,另一台(masterB)备用; 2.masterA是masterB的主库,masterB又是masterA的主库,它们互为主从; 3.两台主库之间做高可用,可以采用keepalived等方案(使用VIP对外提供服务); 4

Zookeeper总结

懵懂的女人 提交于 2019-12-03 01:43:33
1.ZooKeeper 是什么? ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。 2. 应用场景 · 命名服务 · 配置管理 · 集群管理 · 分布式锁 · 队列管理 3. 架构 4. 设计目的 Zookeeper 是一个高效的、可扩展的服务, read 和 write 操作都被设计为快速的, read 比 write 操作更快。 · 顺序一致性( Sequential Consistency ):从一个客户端来的更新请求会被顺序执行。 · 原子性( Atomicity ):更新要么成功要么失败,没有部分成功的情况。 · 唯一的系统镜像( Single System Image ):无论客户端连接到哪个 Server ,看到系统镜像是一致的。 · 可靠性( Reliability ):更新一旦有效,持续有效,直到被覆盖。 · 时间线( Timeliness ):保证在一定的时间内各个客户端看到的系统信息是一致的。 5. 数据模型 Zookeeper 会维护一个具有层次关系的数据结构,它非常类似于一个标准的文件系统,如图所示: 树节点被称为znode。可以存储数据,有一个与之关联的ACL(AccessControlLists)

redis

戏子无情 提交于 2019-12-03 01:37:22
1、什么是Redis? Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能,比方说用他的List来做FIFO双向链表,实现一个轻量级的高性 能消息队列服务,用他的Set可以做高性能的tag系统等等。另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一 个功能加强版的memcached来用。 Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。 2、Redis相比memcached有哪些优势? (1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型 (2) redis的速度比memcached快很多 (3) redis可以持久化其数据 3、Redis支持哪几种数据类型?