PingPong

Redis6安装(下)

生来就可爱ヽ(ⅴ<●) 提交于 2020-12-25 09:13:10
Redis6安装(下) - 集群与故障转移 Redis Cluster 搭建准备工作 搭建集群之前,务必有一点需要注意就是选举,因为在如今很多的分布式中间件里,集群都会有选举这个概念,一定要达到半数以上的节点,才能够发起公平的投票,否则就会脑裂,比如redis,zk,es等,所以至少保证3个master节点,master会发起选举投票的。这一点要须知。 配置6个节点的虚拟机(预先做好) 192.168.1.221 192.168.1.222 192.168.1.223 192.168.1.224 192.168.1.225 192.168.1.226 192.168.1.227(新增Master) 192.168.1.228(新增Slave) 每个节点搭建单机redis,清理aof和rdb文件(预先做好) 如果为单实例的Redis设置了密码password,那么每个节点都必须要设置masterauth,也就是对应密码,这样是为了master挂掉以后,对应的slave可以升级为master。 需要注意,选举的过程会短暂的对外不可用。 Redis Cluster 搭建实操演练 附: 关闭redis ./redis-cli -p <修改的端口号> -a <修改的密码> shutdown 开启redis: ./redis-server redis.conf 每个单实例中的 redis

Linux下TCP延迟确认(Delayed Ack)机制导致的时延问题分析

三世轮回 提交于 2020-12-23 11:35:13
原文: link . 案例一:同事随手写个压力测试程序,其实现逻辑为:每秒钟先连续发N个132字节的包,然后连续收N个由后台服务回显回来的132字节包。其代码简化如下: char sndBuf [ 132 ] ; char rcvBuf [ 132 ] ; while ( 1 ) { for ( int i = 0 ; i < N ; i ++ ) { send ( fd , sndBuf , sizeof ( sndBuf ) , 0 ) ; . . . } for ( int i = 0 ; i < N ; i ++ ) { recv ( fd , rcvBuf , sizeof ( rcvBuf ) , 0 ) ; . . . } sleep ( 1 ) ; } 在实际测试中发现,当N大于等于3的情况,第2秒之后,每次第三个recv调用,总会阻塞40毫秒左右,但在分析Server端日志时,发现所有请求在Server端处理时耗均在2ms以下。 当时的具体定位过程如下:先试图用strace跟踪客户端进程,但奇怪的是:一旦strace attach上进程,所有收发又都正常,不会有阻塞现象,一旦退出strace,问题重现。经同事提醒,很可能是strace改变了程序或系统的某些东西(这个问题现在也还没搞清楚),于是再用tcpdump抓包分析,发现Server后端在回现应答包后

Java -- Thread中start和run方法的区别

懵懂的女人 提交于 2020-12-17 07:55:22
一、认识Thread的 start() 和 run() 1。start(): 我们先来看看API中对于该方法的介绍: 使该线程开始执行;Java 虚拟机调用该线程的 run 方法。 结果是两个线程并发地运行;当前线程(从调用返回给 start 方法)和另一个线程(执行其 run 方法)。 多次启动一个线程是非法的。特别是当线程已经结束执行后,不能再重新启动。 用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码 。通过调用Thread类的 start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法 ,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。 2。run(): 我们还是先看看API中对该方法的介绍: 如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。 Thread 的子类应该重写该方法。 run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目的。

Redis学习笔记(十八) 集群(下)

狂风中的少年 提交于 2020-10-27 17:45:09
复制和故障转移 Redis集群中的节点分为主节点(master)和从节点(slave),其中主节点用于处理槽,而从节点则用于复制某个主节点,并在被复制 的主节点下线时,代替下线主节点继续处理命令请求。 设置从节点:CLUSTER REPLICATE < node_id >可以让接收命令的节点称为node_id 所指定节点的从节点,并开始对主节点进行复制。 1)接收到该命令的节点首先会在自己的clusterState.nodes字典中找到node_id所对应节点的clusterNode结构,并将自己的clusterState.myself.slaveof指针指向这个结构,以此来记录这个节点正在复制的主节点: struct clusterNode{ // 如果这个时一个从节点,那么指向主节点 struct clusterNode * slaveof; } 2)节点修改自己的clusterState.myself.flags中的属性,关闭原本的REDIS_NODE_MASTER标识,打开REDIS_NODE_SLAVE标识,标识这个节点已经由原来的主节点变成了从节点。 3)节点会调用复制代码,根据clusterState.myself.slaveof指向clusterNode结构所保存的IP地址和端口号,对节点进行复制。 一个节点称为从节点

PINGPONG技术文档:数据分析三剑客+MySQL+可视化套餐+量化分析+Hadoop仓库

隐身守侯 提交于 2020-10-10 04:14:21
Python作为一门学习上手快、代码优雅的编程语言,一直以来都是最热门的几种语言之一,Python一直有胶水语言之称,应用场景相当广泛,在当下数据分析的热潮中,Python有效将各种技术结合,使得分析更加简单。总结一下数据分析必备技能,希望可以帮助到各位。 总结一下数据分析必备技能,希望可以帮助到各位。 一、数据分析三剑客 Nump多维数组的创建、处理 线性函数、矩阵详解 Pandas数据结构 高斯分布、卡方分布 Pandas下的绘图机制 Matplotlib绘图流程、方法 数据加载、清理、存储、转化、合并、重塑等多方位分析 二、MySQL 多种数据库特点与应用场景 MySQL实战 MySQL入门指南 MySQL多平台的安装部署 MySQL可视化工具与数据的导入导出 多表关系设计与字段约束 SQL实现销售任务派发系统 三、可视化套餐技术整理 使用Django搭建Web项目、Web接口展示 浏览器与WEB服务器的通信原理 路由、视图、模板、模型的关联原理 Seaborn各种图谱绘制 Tableau工作表、仪表盘、故事详解 四、量化分析资料汇总 数学建模 易拉罐形状和尺寸的最优设计 算法详解 “一口价”的战略 财务质量因子研究 算法模型的评价标准 五、Hadoop全面解析 Hadoop原理 MapReduce与Python编程详解 级联MapReduce原理分析 Combiner解析

30道Java笔试题精选(附答案解析)

我只是一个虾纸丫 提交于 2020-10-03 12:32:06
都是一些非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,纯考Java基础功底,但是IT公司就喜欢考这些基础的东西,所以为了能进大公司就~当复习期末考吧。花了不少时间整理,在整理过程中也学到了很多东西,请大家认真对待每一题! 下面都是我自己的答案,非官方,仅供参考,如果有疑问或错误请一定要提出来,大家一起进步~ 由于篇幅有限,以下只展示小部分面试题,有需要完整版的朋友可以点一点链接跳转领取: 链接: 点这里!!! 暗号:CSDN 1.下面哪些是Thread类的方法() A start() B run() C exit() D getPriority() 答案:ABD 解析:exit()是System类的方法,如System.exit(0)。 2.下面关于java.lang.Exception类的说法正确的是() A 继承自Throwable B Serialable CD 不记得,反正不正确 答案:A 解析:Java异常的基类为java.lang.Throwable,java.lang.Error和java.lang.Exception继承 Throwable,RuntimeException和其它的Exception等继承Exception,具体的RuntimeException继承RuntimeException。 扩展:错误和异常的区别(Error vs

MIT 6.828

谁说胖子不能爱 提交于 2020-08-17 04:07:58
目录 实验总结 0. 实验准备 1. sleep 2. pingpong 3. primes 4. find 5. xargs 实验总结 本次实验用时约五个小时,足证我代码能力之退化。 对于实验三中难懂的 redirect() , twd2 认为可以往 xv6 中加一个 dup2 函数,我表示同意。需要进一步研究 xv6 结构,确定如何添加。 遇到的其他问题包括: 突然间发现 gcc 不认 uint 类型了。经检查发现用户态程序需要手动 #include "kernel/types.h" ,不然会爆炸。 测试结果: $ make grade # ... lines omitted Score: 100/100 0. 实验准备 实验指导连接 上来直接: $ cd xv6-riscv-fall19 $ git checkout util 实验指导简要介绍了如何把 xv6 跑起来( make then make qemu ),如何交作业( make handin ),如何测试成绩( make grade )。 下面介绍各个子任务如何写。 1. sleep 顾名思义写一个 sleep 例程,休眠一定的 tick 数,tick 的定义是时间中断。 Hints: Look at some of the other programs in user/ to see how you can

面试必问之redis

吃可爱长大的小学妹 提交于 2020-08-13 13:26:14
这里是我作为10年面试经验总结的面试中必问问题 问题一 简单介绍下redis redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,实现数据的持久化 问题二 redis有哪几种数据结构 1、string是redis最基本的类型,可以理解成与memcached一模一样的类型,一个key对应一个value。value不仅是string,也可以是数字。string类型是二进制安全的,意思是redis的string类型可以包含任何数据,比如jpg图片或者序列化的对象。string类型的值最大能存储512M。 2、Hash是一个键值(key-value)的集合。redis的hash是一个string的key和value的映射表,Hash特别适合存储对象。常用命令:hget,hset,hgetall等。 3

MIT 6.828

点点圈 提交于 2020-08-13 06:42:49
目录 实验总结 0. 实验准备 1. sleep 2. pingpong 3. primes 4. find 5. xargs 实验总结 本次实验用时约五个小时,足证我代码能力之退化。 对于实验三中难懂的 redirect() , twd2 认为可以往 xv6 中加一个 dup2 函数,我表示同意。需要进一步研究 xv6 结构,确定如何添加。 遇到的其他问题包括: 突然间发现 gcc 不认 uint 类型了。经检查发现用户态程序需要手动 #include "kernel/types.h" ,不然会爆炸。 测试结果: $ make grade # ... lines omitted Score: 100/100 0. 实验准备 实验指导连接 上来直接: $ cd xv6-riscv-fall19 $ git checkout util 实验指导简要介绍了如何把 xv6 跑起来( make then make qemu ),如何交作业( make handin ),如何测试成绩( make grade )。 下面介绍各个子任务如何写。 1. sleep 顾名思义写一个 sleep 例程,休眠一定的 tick 数,tick 的定义是时间中断。 Hints: Look at some of the other programs in user/ to see how you can

【PathTracing】虚幻四中针对体素进行优化的基于SV(Voxel)GF的实时光线追踪

↘锁芯ラ 提交于 2020-05-03 16:31:44
写在前面: 本文将分享我在UE4中使用蓝图复现SVGF [1] (的Voxel改版)的流程。 本文将首次放出项目(可以算是开源,写得不好还请见谅)。而且不会有太多的公式,涉及的方面虽然很多但是其实在我之前的文章里都有提到。只描述这个项目是怎么用蓝图来实现的。 项目包含: 一个全蓝图和材质的光追器(包括BRDF,Pathtracing,体素求交), 一个体素化函数库(目前有点Bug但是基本不影响使用), 一个体素操作函数库 一个蓝图和材质实时去噪器。 没有额外的C++代码,全文基于蓝图。 项目写成不容易,能多点赞请多点赞。 PS:本人准备以后转到b站,在白嫖(不是)之前,关注我的b站账号并三连吧~(我会尽量更新视频/教程),项目链接也会放在b站的视频下方: 【虚幻4】基于CBR和SVGF的实时体素光线追踪_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili ​ www.bilibili.com 时间隔得比较久,实现及描述上可能会有疏漏,还请各位斧正。 目录 一、管线概述 1.GBuffer(VoxelBuffer) 2.Raytrace 3.Upsampling 4.Atrous Filtering 5.Temporal AA 6.其他(包括数据的准备) 1.Pingpong 2.体素 二、棋盘格与Upsampling 1.棋盘格 2.Upsampling 三、SV(Voxel)GF