美团在Redis上踩过的一些坑-1.客户端周期性出现connect timeout 博客分类: redis 运维 jedisconnect timeoutnosqltcp  转载请注明出处哈:http://carlosfu.iteye.com/blog/2254154   更多Redis的开发.运维.架构以及新动态,欢迎关注微信公众号:       1. 背景:       大部分互联网公司都会有Mysql或者Oracle的DBA,但是在Nosql方面一般不会设置专门的DBA.不过对于一些知名的…
美团在Redis上踩过的一些坑-5.redis cluster遇到的一些问题 博客分类: redis 运维 redis clustercluster-node-timeoutfailover  转载请注明出处哈:http://carlosfu.iteye.com/blog/2254154   更多Redis的开发.运维.架构以及新动态,欢迎关注微信公众号:   由于演讲时间有限,有关Redis-Cluster,演讲者没做太多介绍,简单的介绍了一些Redis-Cluster概念作用和遇到的两个问题…
美团在Redis上踩过的一些坑-4.redis内存使用优化 博客分类: 运维 redis redisstringhash优化segment-hash  转载请注明出处哈:http://carlosfu.iteye.com/blog/2254154 更多Redis的开发.运维.架构以及新动态,欢迎关注微信公众号:   一.背景: 选择合适的使用场景    很多时候Redis被误解并乱用了,造成的Redis印象:耗内存.价格成本很高:    1. 为了“赶时髦”或者对于Mysql的“误解”在一个并发…
美团在Redis上踩过的一些坑-3.redis内存占用飙升 博客分类: 运维 redis redismonitor内存突增client listinfo     转载请注明出处哈:http://carlosfu.iteye.com/blog/2254154   更多Redis的开发.运维.架构以及新动态,欢迎关注微信公众号:    一.现象:     redis-cluster某个分片内存飙升,明显比其他分片高很多,而且持续增长.并且主从的内存使用量并不一致.   二.分析可能原因:  1.  …
美团在Redis上踩过的一些坑-2.bgrewriteaof问题 博客分类: redis 运维 aofaof rewrite  转载请注明出处哈:http://carlosfu.iteye.com/blog/2254154   一.背景 1. AOF: Redis的AOF机制有点类似于Mysql binlog,是Redis的提供的一种持久化方式(另一种是RDB),它会将所有的写命令按照一定频率(no, always, every seconds)写入到日志文件中,当Redis停机重启后恢复数据库…
来自:http://carlosfu.iteye.com/blog/2254154 分为5个部分:    一.周期性出现connect timeout    二.redis bgrewriteaof问题    三.redis内存占用飙升   四.redis内存使用优化    五.redis cluster遇到的一些问题   附赠PPT:   (1) 本次:美团在Redis上踩过的一些坑PPT  (2) 以往:<Redis在新浪的大规模运维经验>-演讲人:侯军伟新浪高级DBA.pdf      …
 一.现象:     redis-cluster某个分片内存飙升,明显比其他分片高很多,而且持续增长.并且主从的内存使用量并不一致.   二.分析可能原因:  1.  redis-cluster的bug (这个应该不存在)  2. 客户端的hash(key)有问题,造成分配不均.(redis使用的是crc16, 不会出现这么不均的情况)  3. 存在个别大的key-value: 例如一个包含了几百万数据set数据结构(这个有可能)  4. 主从复制出现了问题.  5. 其他原因   三.调查原因…
来自: http://blog.csdn.net//chenleixing/article/details/50530419 上上周和同事(龙哥)参加了360组织的互联网技术训练营第三期,美团网的DBA负责人侯军伟给大家介绍了美团网在redis上踩得一些坑,讲的都是干货和坑.     分为5个部分:    一. 周期性出现connect timeout 二.redis bgrewriteaof问题 三.redis内存占用飙升 四.redis内存使用优化 五.redis cluster遇到的一些问…
一.报错:* MASTER <-> SLAVE sync started # Error condition on socket for SYNC: No route to host解决:详情见:https://blog.csdn.net/qq_28538407/article/details/81878609 主从复制时,如果主机状态如下: # Replication role:master connected_slaves:0 master_repl_offset:0 repl_backl…
启动项目时控制台抛出的异常信息: -- :: --- [ main] o.s.s.c.ThreadPoolTaskScheduler : Initializing ExecutorService 'taskScheduler' -- :: --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup -- :: --- [ main] o.s.c.support.Defa…
Redis Cluster踩过的坑请参考如下链接:http://www.iteye.com/blogs/subjects/Redis_Cluster_Devops…
转载Redis 上实现的分布式锁 由于近排很忙,忙各种事情,还有工作上的项目,已经超过一个月没写博客了,确实有点惭愧啊,没能每天或者至少每周坚持写一篇博客.这一个月里面接触到很多新知识,同时也遇到很多技术上的难点,在这我将对每一个有用的技术点做一个小小的分析理解和总结.每天去学会总结,才会有进步. 本次对我在工作上的项目中用到的技术---在redis上实现分布式锁,进行一个分析和总结. 先了解下什么时分布式锁,在百度上是这么定义的: 分布式锁是控制分布式系统之间同步访问共享资源的一种方式.在分布…
由于近排很忙,忙各种事情,还有工作上的项目,已经超过一个月没写博客了,确实有点惭愧啊,没能每天或者至少每周坚持写一篇博客.这一个月里面接触到很多新知识,同时也遇到很多技术上的难点,在这我将对每一个有用的技术点做一个小小的分析理解和总结.每天去学会总结,才会有进步. 本次对我在工作上的项目中用到的技术---在redis上实现分布式锁,进行一个分析和总结. 先了解下什么时分布式锁,在百度上是这么定义的: 分布式锁是控制分布式系统之间同步访问共享资源的一种方式.在分布式系统中,常常需要协调他们的动作.…
细说分布式Redis架构设计和踩过的那些坑_redis 分布式_ redis 分布式锁_分布式缓存redis 细说分布式Redis架构设计和踩过的那些坑…
/** *在redis上实现分布式锁 */ class RedisLock { private $redisString; private $lockedNames = []; public function __construct($param = NULL) { $this->redisString = RedisFactory::get($param)->string; } /** * 加锁 * @param [type] $name 锁的标识名 * @param integer $ti…
1)redis跨实例迁移--源实例db11迁移至目标实例db30 root@fe2e836e4470:/data# redis-cli -a pwd1 -n 11 keys \* |while read key > do > echo "Copying $key" > redis-cli -a pwd1 -n 11 --raw dump $key |head -c -1 \ > |redis-cli -h <dst_ip> -p 6379 -a pw…
公众号链接 最高级的红酒,一定要掺上雪碧才好喝. 基于这样的品味,我设计出了一套在经典nosql数据库redis上实现SQL引擎的方法.既然redis号称nosql,而我偏要把SQL加到redis上,于是这个技术方案取名为[YesSql]. 1.在redis上实现SQL查询的技术基础 redis上可以执行lua.整个SQL引擎就是在lua上解析SQL语句,执行,并返回结果. lua有很好的正则表达式引擎,因此解析SQL语法变得简单. redis提供map, zset这样的数据结构,很容易实现列存…
引言 最近项目上线的频率颇高,连着几天加班熬夜,身体有点吃不消精神也有些萎靡,无奈业务方催的紧,工期就在眼前只能硬着头皮上了.脑子浑浑噩噩的时候,写的就不能叫代码,可以直接叫做Bug.我就熬夜写了一个bug被骂惨了. 由于是做商城业务,要频繁的对商品库存进行扣减,应用是集群部署,为避免并发造成库存超买超卖等问题,采用 redis 分布式锁加以控制.本以为给扣库存的代码加上锁lock.tryLock就万事大吉了 /** * @author xiaofu * @description 扣减库存 *…
三分之一的程序猿之社交类app踩过的那些坑 万众创新,全民创业.哪怕去年陌生人社交不管融资与否都倒闭了不知道多少家,但是依然有很多陌生人社交应用层出不穷的冒出来.各种脑洞大开,让人拍案叫起. 下面我们来挑选一些app. NO1 陌陌 陌陌为什么能火.陌陌为什么能上市,陌陌的崛起直接引领了陌生人社交的火热,后来者都称自己为“陌陌之后,下一代陌生人社交***”的称号. 像这些都项目都是想做下一个陌陌,至于为什么陌陌能成功,我会告诉你,真正的原因就是,陌陌是第一个以“约炮”为噱头的app,强占先机.其…
最近因为项目需要,研究了性能测试的相关内容,并且最终选用了jmeter这一轻量级开源工具.因为一直使用jmeter的GUI模式进行脚本设计,到测试执行阶段工具本身对资源的过量消耗给性能测试带来了瓶颈,一般线程加到100左右就会出现工具本身无法支撑的问题,广泛了解解决办法后,发现分布式部署测试机仍是首选方案.   关于如何配置jmeter分布式部署测试机很多博客上已经描述得很详细了,这里就不再赘述,可以参考虫师的博客: http://www.cnblogs.com/fnng/archive/201…
随着HTML5被越来越多的用到web APP的开发当中,webview这一个神器便日渐凸显出重要地位.简要的说,webview能够在移动应用中开辟出一个窗口,在里面显示html页面,css以及js代码也可以被解析执行,它使用的是我们熟悉的webkit内核.android和ios都有相应的API,所以写一份代码在多个平台运行的能力就是以webview为基础的. 今天我们要聊的不是如何使用webview,而是笔者本人作为一名前端工程师,在与客户端开发人员通过webview打交道中遇到的种种神奇事件.…
Redis集群的使用测试(Jedis客户端的使用)1.Jedis客户端建议升级到最新版(当前为2.7.3),这样对3.0.x集群有比较好的支持.https://github.com/xetorthio/jedishttp://mvnrepository.com/artifact/redis.clients/jedis2.直接在Java代码中链接Redis集群:// 数据库链接池配置JedisPoolConfig config = new JedisPoolConfig(); config.set…
由于公司的最近开始使用RocketMQ来做支付业务处理, 便开启了学习阿里云RocketMQ的学习与实践之路, 其中踩了不少的坑, 大部份是由于没有仔细查看阿里云的技术文档而踩的坑. 但是有一个非常大的坑, 确实是阿里云的技术文档里没有提及, 在文章的最后会给大家提及. 使用过程了封装的RocketMQ类库已开源在github: https://github.com/antaintan/easyrocketmq 公司的一位同事推荐使用RocketMQ, 并给出了几个流行MQ的对比, 资料来源, …
写在开头 需求方:上传试卷的时候,用户自己拍的照片有很多问题.如:不清晰.图片歪了.错误图片等.我们要是能够对拍摄照片进行识别处理就好了,能够裁切矫正就更好了,最好可以像二维码扫描一样,直接识别处理- 开发:满足你! 一.整体框架逻辑 试卷扫描模块,最核心的逻辑就是数据采集.解码识别.图片裁切,再加上对识别结果和裁切结果的处理,就构成了整个模块的主逻辑(感谢多媒体同事对图片识别与处理提供库的支持).整个逻辑的实现如下图所示: 在模块中,除了UI线程,还开启了一个Deocde线程,用来处理图片的解…
主要记录关键和有坑的地方 前提: 1.SpringBoot+shiro已经集成完毕,如果没有集成,先查阅之前的Springboot2.0 集成shiro权限管理 2.redis已经安装完成 3.redis客户端使用Lettuce,这也是sprinboot2.0后默认的,与jedis的区别,自行百度 4.json使用springboot默认的 一.依赖 <dependency> <groupId>org.springframework.boot</groupId> <…
脚本运行的过程中,大量request抛error,但没有地方能够查看request是因为什么error的. 原因:Jmeter默认禁掉了运行过程中每个request的具体response信息收集,只保留了status.解决方法:修改jmeter.properties文件中Results file configuration.把所有和response相关False的项改为True.运行后将输出保存.jtl文件中.添加tree监听器,过滤只显示error request,可以查看到request和r…
Redis服务器是典型的一对多服务器程序,通过使用由IO多路复用技术实现的文件事件处理器,Redis服务器使用单线程单进程的方式来处理命令请求,并与多个客户端进行网络通信. Redis客户端与服务器之间通过TCP协议进行通信.TCP协议是一种流式协议,数据以字节流的形式进行传递,没有固有的"报文"或"报文边界"的概念,如果需要设置边界,需要应用层自行处理. 因此,Redis客户端与服务器之间的交互数据,都按照Redis自定义的统一请求协议的格式进行编码.使用这种协议…
这些天应朋友的要求抓取某个论坛帖子的信息,网上搜索了一下开源的爬虫资料,看了许多对于开源爬虫的比较发现开源爬虫scrapy比较好用.但是以前一直用的java和php,对python不熟悉,于是花一天时间粗略了解了一遍python的基础知识.然后就开干了,没想到的配置一个运行环境就花了我一天时间.下面记录下安装和配置scrapy踩过的那些坑吧. 运行环境:CentOS 6.0 虚拟机 开始上来先得安装python运行环境.然而我运行了一下python命令,发现已经自带了,窃(大)喜(坑).于是go…
Spring Boot 2.x 已经发布了很久,现在 Spring Cloud 也发布了 基于 Spring Boot 2.x 的 Finchley 版本,现在一起为项目做一次整体框架升级. 升级前 => 升级后 Spring Boot 1.5.x => Spring Boot 2.0.2 Spring Cloud Edgware SR4 => Spring Cloud Finchley.RELEASE Eureka Server Eureka Server 依赖更新 升级前: <…
GitHub上传项目,使用desktop(客户端)教程  搜索“GitHub上传项目”,能得到很多相关的文章教程,里面讲的都特别麻烦,要弄什么ssh之类的,可算是吓坏了我,使我非常的怀疑为什么GitHub不做一个直接拖拽项目文件夹的功能呢?但其实不然,上传过程很简便,不信来看看,完全不需要什么ssh啊?! 我已经有GitHub账号了,所以就直接跳过这一步了. 1. 下载GitHub客户端 这里是下载地址https://desktop.github.com. 下载后是一个APP,如下图: 选择[S…